tr -d não funciona com retorno de carro

1

Eu quero me livrar do \ n da variável Eu encontrei muitas respostas para o que diz "use tr -d" mas tr -d não funciona para mim

echo "$test" | od -c
0000000   4   4   2   5   2  \n
0000006

então eu uso tr -d

test2=$(echo $test | tr -d '\n')

mas nada muda

echo "$test2" | od -c
0000000   4   4   2   5   2  \n
0000006
    
por user4757345 05.02.2016 / 10:39

2 respostas

2

Uso de tr -d '\n' , remove \n (ou seja, caractere de nova linha) conforme o esperado. Mas você está verificando isso com o comando echo . O próprio comando Echo colocará o novo caractere de linha @ fim da string de entrada e, portanto, você não conseguirá ver a saída esperada.

Verifique a variável abaixo do conjunto de comandos.

test2=$(echo "$test" | tr -d '\n')
printf "%s" $test2 | od -c
echo -n $test2 | od -c

Saída de script:

0000000   h   e   l   l   o
0000005
0000000   h   e   l   l   o
0000005

Nota: echo -n: Da página man echo: -n não exibe a nova linha final printf: não anexa \ n no final

    
por 05.02.2016 / 11:00
2

echo está anexando \n por padrão. Use -n para omitir

[6]root@lab7:~> echo 'lol' |od -c
0000000   l   o   l  \n
0000004
[6]root@lab7:~> echo -n 'lol' |od -c
0000000   l   o   l
0000003
    
por 05.02.2016 / 11:01