Eu tenho um arquivo de texto, onde os registros são divididos em duas linhas. Eu gostaria de colocá-los em uma linha. Os registros são mais ou menos assim:
2013-07-29
apt-get install git
2013-07-29
apt-get install rsync
2013-07-31
apt-get install nmap
2013-08-02
apt-get install cifs-utils
2013-08-05
apt-get install telnet
Gostaria de obter o seguinte:
2013-07-29 apt-get install git
2013-07-29 apt-get install rsync
2013-07-31 apt-get install nmap
2013-08-02 apt-get install cifs-utils
2013-08-05 apt-get install telnet
Eu tentei com sed
, mas não consigo combinar duas linhas. Existe algum truque sed
ou alguma ferramenta melhor?
text-processing
sed
Martin Vegter
fonte
fonte
Respostas:
N
une a próxima linha de entrada ao espaço do padrãos/\n/ /
substitui a nova linha que separa as linhas por um espaço.ou:
-n
desativa a impressão automática do espaço do padrão como último comando/regex/p
imprime linhas correspondentes a regexUse o
g
modificador para as substituições, caso esteja juntando mais de duas linhas, por exemploN;N;N;s/\n/ /g
.fonte
sed 's/>\n</>,</'
trabalhar até perceber que o sed funciona nas linhas de cada vez. uma rápida pesquisa duckduckgo e @peterph me permitiram manter o resto do meu cabeloParece que as
apt-get
linhas têm um espaço em branco anterior. Dizendo:deve produzir o resultado desejado.
Como alternativa, você também pode usar
paste
:fonte