catの-sオプションで連続した複数の空白行を1行にする
※MACターミナル(BSD系)での動作確認です。
例えば、下記のファイルがあったとします。
$ cat file.txt awk find ls grep
catで-sオプションを付けると、下記のように、連続した複数の空白行が1行になります。
$ cat -s file.txt awk find ls grep
awkで書いてみた
awkを使って書いてみました。
他に良い書き方があるかもれませんね。
$ cat sample.awk
#!/bin/sh
cat file.txt | awk '
{
if($0 == ""){
flag++
}else{
flag = 0
}
if($0 != "" || flag == 1){
print $0
}
}
'
下記が実行結果になります。
$ ./sample.awk awk find ls grep
