¿Hay un script / programa / utilidad ya disponible para el siguiente requisito de manera optimizada?
someCommand |
tee >(grep "pattern" > LinesWhichMatch) |
grep -v "pattern" > LinesWhichDoesNotMatch
text-processing
grep
tee
balki
fuente
fuente

awkpero ¿en qué punto evalúa el>? Si se evalúa cada vez se aplica el condicional, que acabaría con dos archivos de una sola línea ...>imprime todos los resultados en el archivo, sobrescribiendo los archivos existentes. No se evalúa de tal manera que dará como resultado que las líneas nuevas sobrescriban la salida anterior de la misma instancia deawk. Es decir, si hay varias coincidencias, el archivo "coincidencia" contendrá cada coincidencia separada porOFS. La diferencia entre>y>>existe en el tratamiento de archivos existentes.Aquí hay un
sedejemplo:Nota: el
wcomando de sed sobrescribirá un archivo existente cada vez que se ejecute el script, pero solo si se activa ese comando de escritura en particular; por lo tanto, larmfuente
sed -n '/PATTERN/p;//! w file-not' infile >file-yesPuede agregar archivos en awk:
o más corto:
fuente