Por que é que, para newline está funcionando, mas nova linha para, não está funcionando sed?

1

Eu tenho um arquivo de texto com uma lista de primeiros nomes e estou tentando substituir a nova linha por , .

Aqui está o comando que estou usando

sed 's/\
/,/g' file

enquanto o reverso está funcionando

sed 's/,/\
/g' file

substitui , por nova linha.

    
por dwwdw 05.02.2013 / 17:47

1 resposta

3

sed não é capaz de comer novas linhas de maneira simples. sed funciona linha a linha, portanto, só pode adicionar novas linhas, não removê-las. Mas você pode efetivamente fazer alguma ginástica sed armazenando duas linhas consecutivas . Você também pode querer dar uma olhada em tr , que é capaz de substituir caracteres, por exemplo:

tr '\n' , < file

Além disso, com muitas ferramentas, você pode usar '\n' para representar o caractere de alimentação de linha (usado para quebras de linha do UNIX).

Como Stephane apontou, tr irá substituir todos os feeds de linha (incluindo o último). Você pode preferir usar paste , que unirá as linhas usando um delimitador especificado:

paste -sd, file
    
por 05.02.2013 / 18:02

Tags