¿Hay alguna ventaja adicional de atrapar un archivo y convertirlo en grep, además de la comodidad? La conveniencia es que, cuando recupero comandos como los siguientes de mi historial, el cursor está al final de la línea, por lo que es fácil modificar el comando con un texto diferente para agruparlo en el mismo archivo.
Entonces, ¿qué otras ventajas podría tener la siguiente convención:
cat /var/tmp/trace.2043925204.xt | grep -in profile
cat /var/tmp/trace.2043925204.xt | grep -n Profile-Main
en lugar de:
grep -in profile /var/tmp/trace.2043925204.xt
grep -n Profile-Main /var/tmp/trace.2043925204.xt
cat
es mucho más claro de leer que<
. O tal vez solo para nosotros, los fogeys que pensamos que Unix y bash podrían aprender muchísimo de VMS y DCL.No hay ventaja Su cursor al final tampoco importa mucho si lo estructura así:
< inputfile grep -args foo
fuente
Simplemente no necesita usar cat en esta situación en absoluto. Es innecesario y una pérdida de tiempo, porque herramientas como grep toman nombres de archivos como argumentos.
Actualización: Gracias, @Andy Lester, por señalar que estos tiempos no tienen en cuenta la memoria caché del disco. ¡Aprendí algo nuevo! Pero los ahorros de una fracción de segundo no hacen mucha diferencia de todos modos. Solo creo que poner a cat en grep no es una forma lógica de hacer las cosas. Es como pedirle a alguien que te ayude con un problema, cuando eres perfectamente capaz de resolverlo tú mismo.
fuente
La facilidad de edición es la única ventaja real, y si lo está haciendo en la línea de comando, cualquier tiempo adicional que se necesite para ejecutar
cat
y hacer la tubería realmente no hará la diferencia.Sin embargo, no hay razón para hacerlo en un script de shell.
fuente
No hay ningún beneficio en absoluto. En lugar de preocuparse por modificar los comandos, aprenda a navegar mejor la línea de comandos de su shell con teclas aceleradoras y accesos directos.
fuente
No, e incluso podría ser minuciosamente más lento en el ejemplo que da.
A
pipe
se crea entre cat y grep, lo cual no es necesario al pasar el nombre de archivo directamente a grep. Sin embargo, no creo que bajo ninguna circunstancia observe alguna vez limitaciones de rendimiento debido a esto.Otras ventajas de la entrada de tubería a grep incluyen procesamiento adicional previo, como el uso de utilidades con capacidades de lectura de archivos más avanzadas. (Ver
tee
,zcat
entre otros).fuente