入力の末尾に空白行を追加します。

入力の末尾に空白行を追加します。

以下のように、最後に改行なしで出力を生成するいくつかのコマンドがあります。

Myprompt$ somecmd
dksfjdl
dsfjdlkfj
dsfjdkfj
dfjdkfjMyprompt$

現在、この問題を解決するsomecmd | sed 's/$/\n/' | tr -s '\n' より良い方法はありますか?

答え1

その後、echoを実行すると改行文字が生成されます。

Myprompt$ somecmd ; echo

他のものに供給する必要がある場合は、サブシェルで実行してください。

Myprompt$ ( somecmd ; echo ) | someothercmd

または.. @camhが指摘したように、実際にはサブシェルは必要なく、現在のシェル環境のコマンドリストを使用して実行できます。

Myprompt$ { somecmd ; echo ; } | someothercmd

答え2

これは、入力および出力ラインを1行で読み取るいくつかのユーティリティを介して提供されますawk { print $0 }

関連情報