コマンドラインから印刷された行間に改行を追加するには?

コマンドラインから印刷された行間に改行を追加するには?

メールログは読みにくいです。コマンドラインに印刷された各行の間に空白行を出力するにはどうすればよいですか?たとえば、ログをgrepingするとします。これにより、複数行の改行が混同されません。

答え1

sed G 
# option: g G    Copy/append hold space to pattern space.

G通常は使用されませんが、この目的に役立ちます。sed「パターン空間」と「ホールド空間」という2つのバッファ空間が保持される。処理された行seds///パターンスペース(など)は通常、その内容に対してさまざまなコマンドが機能しているときに渡されますp。予約されたスペースは最初は空であり、特定のコマンドによってのみ使用されます。

このGコマンドは、改行文字と予約済みスペースの内容をパターンスペースに追加します。 ~上sedプログラムは予約されたスペースに何も置かないので、G実際には処理する各行に改行文字を追加するだけです。

答え2

改行を追加するには、awkを使用してください。また、不要なアイテムをフィルタリングすることもできます。

awk '{print $0,"\n"}' | less

答え3

sed を使用し、行全体と追加の改行を単独で置き換えます。

grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"

答え4

|すべての出力を次にルーティングします。

sed G

例:

ls | sed G

あなたman sedが見ることができれば

Gパターンスペースに改行文字と予約済みスペースを追加します。

関連情報