bash - segun - comportamiento del consumidor solomon capitulo 2
Imprimir todo en línea después de la coincidencia (4)
Con GNU grep
, intente -B0 -A999999999
o similar. Una mejor opción podría ser awk
:
awk ''/target_string/ {seen = 1}
seen {print}''
Si (la especificación de su problema no está clara) no necesita imprimir la línea correspondiente, sed
es aún más corto:
sed ''1,/target_string/d''
Esta pregunta ya tiene una respuesta aquí:
- Obtener cadena tras carácter [duplicar] 5 respuestas
Tengo un archivo de texto grande que contiene una cadena única en el medio. Lo que quiero hacer es imprimir todo DESPUÉS de la cadena usando grep.
cat textfile | grep "target_string"
This highlights target_string but prints the whole file
cat textfile | grep -o "target_string"
This prints only target_string
cat textfile | grep -o "target_string*"
This prints only target_string
¿Cómo puedo imprimir todo después de target_string y nada antes?
Curiosamente, la respuesta aceptada imprimió toda la línea, donde solo quería toda la información después de la cadena de destino. Esto funcionó para mí:
sed -n ''s/target_string//p'' filename
Adaptado de esta publicación.
Esto imprimirá todo después de cada coincidencia, solo en esa misma línea:
perl -lne ''print $1 if /target_string(.*)/'' textfile
Esto hará lo mismo, excepto que también imprimirá todas las líneas siguientes:
perl -lne ''if ($found){print} else{if (/target_string(.*)/){print $1; $found++}}'' textfile
Olvidaste el ''.'':
cat textfile | grep -o "target_string.*"