#navi(../)
* sedコマンドでスペースのみおよび改行のみの行を削除する [#ye80c192]
sedコマンドでスペースと改行で構成された行を削除する方法をいかに記します。
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 関連記事 [#n0670329]
-[[改行のみの行を削除する>逆引きUNIXコマンド/改行のみの行を削除する]]
-[[HEX形式でファイルを見たい>逆引きUNIXコマンド/HEX形式でファイルを見たい]]
-[[HEX形式でファイルを見たい・hexdumpコマンド>逆引きUNIXコマンド/HEX形式でファイルを見たい・hexdumpコマンド]]
* sedコマンドの構文 [#x87ab054]
以下のコマンドで対象ファイル内の改行のみ行を削除することができます。~
削除した内容を保存するファイル名は、出力ファイル名に設定してください。
sed '/^ *$/d' 対象ファイル名 > 出力ファイル名
または
cat 対象ファイル名 | sed '/^ *$/d' > 出力ファイル名
以下に実行例を記します。
* sedコマンドで改行とスペースで構成される行の削除実行例 [#l3418922]
以下のファイルを使用しました。
$ 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
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)