メールログは非常に読みにくいです。コマンドラインに出力された各行の間に空白行を出力するにはどうすればよいですか?たとえば、ログをgrepしているとしましょう。そうすれば、複数の折り返された行が混同されることはありません。
sed G
# option: g G Copy/append hold space to pattern space.
G
はあまり使用されませんが、この目的には適しています。 sedは、「パターンスペース」と「ホールドスペース」という2つのバッファスペースを維持します。 sedで処理された行は通常、さまざまなコマンドがその内容(s///
、p
など);ホールドスペースは空で始まり、一部のコマンドでのみ使用されます。
G
コマンドは、改行とホールドスペースの内容をパターンスペースに追加します。上記のsedプログラムはホールドスペースに何も配置しないため、G
は処理されるすべての行に改行を効果的に追加します。
Awkを使用して、改行を追加します。これにより、不要なものを除外することもできます。
awk '{print $0,"\n"}' | less
Sedを使用して、行全体と1つの余分な改行文字で置き換えます。
grep foo /var/log/maillog | sed -e "s/^.*$/&1\n/"
これはあなたが求めているものですか?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
|
出力:sed G
ls | sed G
man sed
表示されますG
改行文字の後にパターンスペースにホールドスペースの内容を追加します。
見た目以上のものである場合は、テキストファイルに送信してテキストエディターで開き、行を折り返すかどうかを設定して簡単に検索できるようにし、不要な行などを削除せずに削除します。多くのコマンドを入力する必要があります。
cat file.log > log.txt
およびgedit log.txt
またはnanoのような端末エディター
編集者 cp file.log log.txt
wichはもちろん、簡単で高速です... KeithBコメントのおかげで