grep 'potato:' file.txt | sed 's/^.*: //'
grep
busca cualquier línea que contenga la cadena potato:
, luego, para cada una de estas líneas, sed
reemplaza ( s///
- sustituye) cualquier carácter ( .*
) desde el principio de la línea ( ^
) hasta la última aparición de la secuencia :
(dos puntos seguidos de un espacio) con el vacío cadena ( s/...//
- sustituya la primera parte por la segunda, que está vacía).
o
grep 'potato:' file.txt | cut -d\ -f2
Para cada línea que contiene potato:
, cut
dividirá la línea en varios campos delimitados por espacio ( -d\
- d
= delimitador, \
= carácter de espacio de escape, algo como -d" "
también habría funcionado) e imprimirá el segundo campo de cada una de esas líneas ( -f2
).
o
grep 'potato:' file.txt | awk '{print $2}'
Para cada línea que contenga potato:
, awk
imprimirá el segundo campo ( print $2
) que está delimitado por defecto por espacios.
o
grep 'potato:' file.txt | perl -e 'for(<>){s/^.*: //;print}'
Todas las líneas que contienen potato:
se envían a un script de Perl en línea ( -e
) que toma todas las líneas de , luego, para cada una de estas líneas, hace la misma sustitución que en el primer ejemplo anterior y luego las imprime.stdin
o
awk '{if(/potato:/) print $2}' < file.txt
El archivo se envía vía stdin
( < file.txt
envía el contenido del archivo vía stdin
al comando de la izquierda) a un awk
script que, para cada línea que contiene potato:
( if(/potato:/)
devuelve verdadero si la expresión regular /potato:/
coincide con la línea actual), imprime el segundo campo, como se describe encima.
o
perl -e 'for(<>){/potato:/ && s/^.*: // && print}' < file.txt
El archivo se envía mediante stdin
( < file.txt
, ver arriba) a un script Perl que funciona de manera similar al anterior, pero esta vez también se asegura de que cada línea contenga la cadena potato:
( /potato:/
es una expresión regular que coincide si la línea actual contiene potato:
, y, si lo hace ( &&
), luego procede a aplicar la expresión regular descrita anteriormente e imprime el resultado).
awk '$1 ~ /potato/ { print $2 }' file.txt
.