¿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.

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

12

¿Qué tal en cutcambio:

cat logfile | cut -d "]" -f1

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.