Tengo miles de archivos fuente y me gustaría encontrar todo el texto que coincida con una expresión regular y luego mostrar cada coincidencia en su propia línea en un archivo de texto resultante.
Por ejemplo;
// a.cs
string test = _.Text("Hello World!") + _.Text("Foo");
// b.cs
Debug.Log(_.ActionText("Bar"));
// results.txt
_.Text("Hello World")
_.Text("Foo")
_.ActionText("Bar")
¿Qué comando sería capaz de lograr esto? ¿podría por favor mostrar un ejemplo?
bash
regular-expression
search
Lea Hayes
fuente
fuente

grepapoyos-o, ese sería el mejor candidato.Respuestas:
... probablemente funcionaría. Ejecute en sus datos de ejemplo que imprime:
Todo lo que hace es intentar encerrar la primera coincidencia en una línea en
\newlines. Si tiene éxito o no,Delige hasta la primera línea de\newline en el espacio del patrón, lo que para una línea que no coincide lo elimina por completo de la salida, pero para una coincidencia se elimina solo hasta la cabeza de su patrón y el script comienza de nuevo desde la parte superior . Si una línea\new coincide con el espacio del patrón, lo que solo puede suceder si se encontró una coincidencia y luego seDeligió, entoncessedimprime solo hasta la primera línea\new en el espacio del patrón, que se encuentra en la cola de la cadena coincidente. Las///sustitución!no se intenta cuando ya hay una línea\nelectrónica en el espacio del patrón, por lo queDEl comando elete borra la coincidencia ya impresa y el ciclo comienza nuevamente desde la cola de la última coincidencia.Sin embargo, dependiendo de tu,
sedes posible que necesites usar una línea\nelectrónica literal en lugar delncampo de sustitución del lado derecho. Pero debería poder hacer todos los argumentos del archivo a la vez, o, al menos, muchos a la vez (dependiendo de los límites de ARGMAX) . Puede simplemente bombardear esos, o tal vez hacer ...... porque
sedtratará todos los archivos de entrada como una sola secuencia.fuente
findenfoque y funcionó perfectamente; ¡Gracias!Puedes usar grep.
fuente