Estou aprendendo os diferentes comandos do sed e fiz alguns experimentos. O comando que estou tentando é:
root:[~]# seq 7 | sed -n '1~2H; 2~2{G;p}'
2
1
4
1
3
6
1
3
5
root:[~]#
Analisei o comando e para mim o último caractere de nova linha após o número 5
não deveria existir. Abaixo segue minha análise.
Com base na minha análise, a saída deve ser as células com o fundo vermelho. Como você pode ver, não há último caractere de nova linha. Onde estou errado? Desde já, obrigado.
p
adiciona o caractere de nova linha:Como pode ser visto, o
2
é impresso sem uma nova linha à direita, mas o 1 antes dele, dep
, é.Acho que encontrei a resposta. Na documentação do POSIX sed em https://pubs.opengroup.org/onlinepubs/9699919799/utilities/sed.html , ele afirma:
Isso significa que o
p
comando sempre imprimirá o espaço do padrão, bem como uma nova linha. Isso também explica por que há novas linhas após2\n\n1
,4\n\n1\n3
e6\n\n1\n3\n5
.Por favor, corrija-me se você acha que há algo de errado com isso. Obrigada.