¿Cómo eliminar todos los caracteres en una línea después de "]" con sed?

13

¿Cómo eliminar todos los caracteres en una línea después de "]" con sed?

Estoy tratando de grep algún archivo usando cat, awk. Ahora mi línea me devuelve algo como

121.122.121.111] other characters in logs from sendmail.... :)

Ahora quiero eliminar todo después del carácter "]" (con "]"). Solo quiero 121.122.121.111en mi salida.

Estaba buscando en Google ese ejemplo particular de sed, pero no encontré ninguna ayuda en esos ejemplos.

B14D3
fuente

Respuestas:

20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

Entonces, si tiene un archivo lleno de líneas como esa, puede hacer

 sed 's/].*//' filename
Miguel
fuente
12

¿Qué tal en cutcambio:

cat logfile | cut -d "]" -f1
Sven
fuente
3

Algo como

sed 's|\(.*\)\] .*$|\1|'

Debes hacer lo que quieras. El \(.*\)]va a capturar todo el texto hasta el ]en un patrón recordado y luego los \1sustitutos de TI para toda la línea.

usuario9517
fuente