2017-06-20 3 views
0

これは私のファイルfile.txtなどの内容は次のとおりです。Bashスクリプトのエコーが新しい行を削除するようですか?

header 
a 
b 
c 

私は何が起こっているか見当がつかない。このコマンドは、改行を印刷しません。

echo -e $(tail -n +2 file.txt) 

この版画:

a b c 

しかし、あなたが書いた場合、それはあなたが明確に新しい行が表示されますファイルへ:

tail -n +2 file.txt >> new_file.txt 

test.txtの

a 
b 
c 
行う方法を新しい行を印刷するようにエコーを強制しますか?私はここで何らかのループを作らずに printfを使うことはできないと思います。

+2

ここでは 'echo'をなぜ使用していますか? 'tail -n +2 file'を使用するだけです。 – anubhava

+2

' echo'を使って引用符で囲む必要がある場合、 'echo" $(tail -n +2 file) ''または 'printf"%s \ n "" tail -n +2 file) "' – anubhava

+0

ああ、私はまだbashスクリプトを学んでいて、エコーは印刷物のためだと言われました。しかし、echoが新しい行を表示しない理由はありますか? – Dobob

答えて

1

引用符内のエコーステートメントは、改行で終了する行を出力します。ここにコードがあります

echo -e "$(tail -n +2 file.txt)" 
+0

なぜ 'tail -n +2 file.txt'の代わりに、' echo 「プレゼントは? –

関連する問題