sedコマンドでスペースと改行で構成された行を削除する方法をいかに記します。
以下のコマンドで対象ファイル内の改行のみ行を削除することができます。
削除した内容を保存するファイル名は、出力ファイル名に設定してください。
sed '/^ *$/d' 対象ファイル名 > 出力ファイル名
または
cat 対象ファイル名 | sed '/^ *$/d' > 出力ファイル名
以下に実行例を記します。
以下のファイルを使用しました。
$ cat -n sakura.txt 1 line1 2 3 line2 4 5 line3
2行目と4行目が対象になります。
2行目は改行のみです。
4行目は最初に半角スペースが2文字あり改行しています。
odコマンドを使ってHEXで見てると確認できます。
$ od -tx1c sakura.txt 0000000 6c 69 6e 65 31 0a 0a 6c 69 6e 65 32 0a 20 20 0a l i n e 1 \n \n l i n e 2 \n \n 0000020 6c 69 6e 65 33 0a l i n e 3 \n 0000026
実行結果は以下の通りです。
0x20が削除されて、スペースと改行のみで存在している行が削除されています。 $ cat sakura.txt | sed '/^ *$/d' line1 line2 line3 $ cat sakura.txt | sed '/^ *$/d' | od -tx1c 0000000 6c 69 6e 65 31 0a 6c 69 6e 65 32 0a 6c 69 6e 65 l i n e 1 \n l i n e 2 \n l i n e 0000020 33 0a 3 \n 0000022