区切り文字を使用して2行を1行にまとめる方法

区切り文字を使用して2行を1行にまとめる方法

次のコマンドを実行しました。

cat /proc/loadavg && date

実際の結果:

0.00 0.00 0.00 1/803 26256
Fri Aug 26 09:00:56 EEST 2016

予想される結果:

0.00 0.00 0.00 1/803 26256 @@ Fri Aug 26 09:00:56 EEST 2016

私は成功sedせずにこれを試しましたtr

cat /proc/loadavg && date | sed 's/\n/ @@ /g'

cat /proc/loadavg && date | tr '\n' ' @@ '

私が何を見逃しているのでしょうか?

ベストアンサー1

最良の方法はを使用することですprintf。 2つの文字列があり、それを追加の形式で出力したいと思います。まさにprintf

$ printf "%s @@ %s\n" "$(cat /proc/loadavg)" "$(date)"

修正したtrため、試行は無効です。tr数値、言葉ではありません。ただし、これを使用して改行文字を1文字に置き換えることができます。

$ ( cat /proc/loadavg; date ) | tr '\n' '@'

...しかし、必要な機能を正しく実行できません。

sed入力から改行文字が削除されたため、あなたの試みは機能しませんsed(つまり、sed -n '/\n/p' inputfile何も印刷されません)。

最初の行の編集中に編集コマンドを使用して2番目の行を読み取った場合でも、sedこれを行うことができます。dateN〜するその間に改行文字を入れてください):

$ ( cat /proc/loadavg; date ) | sed 'N;s/\n/ @@ /'

...しかし、私は個人的にこのprintfソリューションを好みます。

おすすめ記事