Eu gostaria de pegar a saída de um comando bash (neste caso grep) e inserir uma linha em branco a cada duas linhas:
not
like
this ...
but
like
this!
Maneira inteligente de fazer isso no bash?
Eu gostaria de pegar a saída de um comando bash (neste caso grep) e inserir uma linha em branco a cada duas linhas:
not
like
this ...
but
like
this!
Maneira inteligente de fazer isso no bash?
Há muitas maneiras de fazer isso para arquivos de texto. O mais simples é provavelmente
Usando
pr
decoreutils
:(observe que isso faz um espaço duplo na linha final - ao contrário, digamos,
sed '$!G'
). Deman pr
:Começando com um arquivo como:
sed funcionará:
Então vai awk:
1
é a abreviação enigmática do awk para imprimir a linha eORS='\n\n'
diz ao awk para separar as linhas de saída não apenas com uma, mas com duas novas linhas.Mais
Um comando sed mais curto, conforme sugerido por steeldriver , é:
O
G
comando acrescenta uma nova linha e o espaço de retenção ao final do espaço do padrão . Como, por padrão, o espaço de retenção está vazio, isso tem o efeito de apenas adicionar uma nova linha extra no final de cada linha. O prefixo$!
diz ao sed para fazer isso em todas as linhas, exceto na última.Outra versão do awk: