サンプル入力は
1
2
3
4
5
6
7
8
9
予想される出力は次のとおりです。
1
2
3
---
4
5
---
6
7
8
---
9
答え1
一方通行:
cat -s file | sed 's/^$/---/'
猫のマニュアルページから:
-s, --squeeze-blank
never more than one single blank line
cat
空行を絞った後、sed
スペースを次のように置き換えます。---
答え2
AWKの複数行ロギング機能(空のRS)を使用するPOSIX準拠の方法:
awk 1 RS= ORS='\n---\n' file
末尾の「---」行を除外すると、目的と同じ出力が生成されます。この違いが許可されていない場合は、sedフィルタを使用して削除できます。
... | sed '$d'