Por que não há uma nova linha no final de citar uma subcamada e passar os resultados para ecoar?

9

Quando eu faço ls | grep png , a saída do grep é:

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

(nome do arquivo, nova linha, nome do arquivo, nova linha)

então, echo $(ls | grep png) outputs:

2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png

(nome do arquivo, espaço da palavra dividida, nome do arquivo, nova linha !! do eco !!)

Tudo bem, mas quando faço isso para evitar a divisão de palavras: echo "$(ls | grep png)" , a saída é:

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

E a minha pergunta é, onde está a segunda nova linha (uma deve ser do grep e outra do echo)?

    
por MichalH 17.05.2015 / 18:13

1 resposta

8

Essa é a nova linha do echo , você pode verificar usando echo -n para suprimir a nova linha:

echo -n "$(ls | grep png)"

Substituição de comandos remove todas as novas linhas iniciais, a última nova linha foi adicionada por echo , grep não tem nada para fazer aqui.

    
por 17.05.2015 / 18:22