Os logs de correio são incrivelmente difíceis de ler. Como eu poderia gerar uma linha em branco entre cada linha impressa na linha de comando? Por exemplo, diga que estou cumprimentando o log. Dessa forma, várias linhas quebradas não estão sendo confundidas.
sed G
# option: g G Copy/append hold space to pattern space.
G
não é usado com frequência, mas é bom para essa finalidade. sed mantém dois espaços de buffer: o "espaço padrão" e o "espaço de espera". As linhas processadas por sed geralmente fluem pelo espaço do padrão, à medida que vários comandos operam em seu conteúdo (s///
, p
, etc.); o espaço de espera começa vazio e é usado apenas por alguns comandos.
O comando G
acrescenta uma nova linha e o conteúdo do espaço de espera ao espaço do padrão. O programa acima sed nunca coloca nada no espaço de espera, então G
acrescenta efetivamente apenas uma nova linha a cada linha processada.
Use awk para adicionar uma nova linha extra. Isso também permite filtrar coisas que você não deseja.
awk '{print $0,"\n"}' | less
Use sed e substitua a linha inteira por si só mais um caractere de nova linha extra:
grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
É isso que você procura?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
|
qualquer saída para:sed G
ls | sed G
man sed
você veráG
Anexa um caractere de nova linha seguido pelo conteúdo do espaço de espera no espaço do padrão.
Se for mais do que apenas visual, prefiro enviá-los para um arquivo de texto e abrir com um editor de texto para que você possa definir as linhas para quebrar ou não e fazer pesquisas facilmente ... e excluir as linhas indesejadas e assim por diante sem tendo que digitar muitos comandos.
cat file.log > log.txt
e gedit log.txt
ou um editor de terminal como o nano
Editor cp file.log log.txt
que obviamente é mais fácil e rápido ... graças ao comentário do KeithB