Estoy tratando de aprender mejor la línea de comandos y me pregunto cuál sería la diferencia entre estos dos comandos.
grep -c ^b example
y
grep ^b example| cat –n
Comentarios
- Bienvenido a Unix y Linux . Si desea aprender la línea de comandos, la mejor manera es experimentar ejecutando los comandos usted mismo utilizando diferentes archivos de entrada. Las preguntas deben mostrar un esfuerzo de investigación, así que ' d le aconsejo que consulte las páginas de manual relevantes para averiguar el propósito de las diferentes opciones. Las páginas de manual no son ' t las más legibles si ' eres nuevo en Unix, así que si tienes algún problema para entenderlo, puedes editar esta pregunta para hacerla más específico (y útil). Consulta Cómo preguntar y no dudes en realizar el recorrido .
- (-1) Ni siquiera los mismos comandos. Dos comandos no relacionados.
- ¿Intentaste ejecutar los comandos?
Responder
Bueno , de acuerdo con el manual , grep
:
busca PATRÓN en cada ARCHIVO . De forma predeterminada,
grep
imprime las líneas coincidentes.
y con -c
bandera:
-c, --count
Suprime la salida normal; en su lugar, imprima un recuento de líneas coincidentes para cada archivo de entrada.
Entonces, grep -c ^b example
imprime el número (recuento) de líneas que coinciden con el patrón, mientras que grep ^b example
imprime las líneas mismas.
En cuanto a cat
, se describe
concatenar archivos e imprimir en el salida estándar
y lo que hace el indicador -n
es:
-n, --number
numere todas las líneas de salida
Dada la tubería y no nombres de archivo, cat
lee de la tubería, por lo que la salida es la salida de grep
, con números de línea agregados. Por lo tanto, grep ^b example| cat –n
imprime todas las líneas coincidentes, numeradas.
Esto es diferente de grep -n ^b example
, donde grep
agrega el li ne números de los partidos. grep
conoce los números de línea del archivo original, mientras que cat
solo ve la salida de grep
y numera las líneas en consecuencia.
Entonces, dado el archivo de entrada
$ cat example bar foo basf
Tenemos:
$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf
Responder
Ok, comando:
-
grep -c ^b example
: muestra el recuento de líneas coincidentes para las líneas que comienzan con la letrab
y -
grep ^b example | cat -n
: pase el resultado del comando grep al comando cat y enumere con números de línea.-n
obliga acat
a enumerarlos junto con los números de línea.
Ejemplo :
example.txt con contenido:
media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \;
Resultado de (1):
3
Resultado de (2):
1 media sound3 2 media sound1 3 media sound2
Comentarios
- Sí tu derecho!