Los registros de correo son increíblemente difíciles de leer. ¿Cómo podría generar una línea en blanco entre cada línea impresa en la línea de comando? Por ejemplo, digamos que estoy greping el registro. De esa manera, no se confunden varias líneas ajustadas.
sed G
# option: g G Copy/append hold space to pattern space.
G
no se usa con frecuencia, pero es bueno para este propósito. sed mantiene dos espacios de almacenamiento intermedio: el "espacio de patrón" y el "espacio de retención". Las líneas procesadas por sed generalmente fluyen a través del espacio del patrón a medida que varios comandos operan en su contenido (s///
, p
, etc.); el espacio de espera comienza vacío y solo lo utilizan algunos comandos.
El comando G
agrega una nueva línea y el contenido del espacio de retención al espacio del patrón. El programa sed anterior nunca pone nada en el espacio de espera, por lo que G
agrega efectivamente una nueva línea a cada línea que se procesa.
Use awk para agregar una nueva línea adicional. Esto también te permite filtrar cosas que no quieres.
awk '{print $0,"\n"}' | less
Use sed y reemplace la línea completa sola más un carácter de nueva línea adicional:
grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
¿Es esto lo que buscas?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
|
cualquier salida a:sed G
ls | sed G
man sed
ya verásG
Append es un carácter de nueva línea seguido del contenido del espacio de espera en el espacio del patrón.
Si se trata de algo más que solo mirar, prefiero enviarlos a un archivo de texto y abrirlos con un editor de texto para que pueda configurar las líneas para ajustar o no y realizar búsquedas fácilmente ... y eliminar las líneas no deseadas y así sucesivamente sin tener que escribir muchos comandos.
cat file.log > log.txt
y gedit log.txt
o un editor de terminal como nano
Editor cp file.log log.txt
que por supuesto es más fácil y rápido ... gracias al comentario de KeithB