ファイル内の特定の文字を含む行を削除する
特定の文字を含む行を削除して別名で出力する
ファイル内で特定の文字列を含む行を削除するには、「awk」, 「grep」 , 「sed」コマンドで削除できますが、今回は「sed」コマンドを利用した場合の方法を紹介します」
下記のように、北海道、東北、関東の都道府県のファイルがあった場合「Tohoku」を削除したい場合は、「sed -e '/Kanto/d’ test.txt > aaa.txt」のようにすれば、「Tohoku」を覗いた行のファイルが保存されます
書式:sed -e /’削除対象の文字列’/d (ファイル名) > (出力ファイル名)
$ cat test.txt Hokkaido Hokkaido Sapporo Tohoku Aomori Aomori Tohoku Iwate Morioka Tohoku Miyagi Sendai Tohoku Akita Akita Tohoku Yamagata Yamagata Tohoku Fukushima Fukushima KantoKanto Ibaraki Mito Kanto Tochigi Utsunomiya Kanto Gumma Maebashi Kanto Saitama Saitama Kanto Chiba Chiba Kanto Tokyo Shinjuku Kanto Kanagawa Yokohama # 「Kanto」を含む行を削除して「aaa.txt」を出力する $ sed -e '/Kanto/d' test.txt > aaa.txt # 「Kanto」を含まれていないか確認 $ cat aaa.txt Hokkaido Hokkaido Sapporo Tohoku Aomori Aomori Tohoku Iwate Morioka Tohoku Miyagi Sendai Tohoku Akita Akita Tohoku Yamagata Yamagata Tohoku Fukushima Fukushima
特定の文字を含む行を削除して、同一ファイルに上書きしたい
特定の文字を含む行を削除して、同一ファイルに上書き(置き換え)したい場合は、「sed」コマンドで「-i」 のオプションを使用します。
書式:sed -i -e /’削除対象の文字列’/d (ファイル名)
# 「Tohoku」を含む行を削除して、「test.txt」を上書きをする $ sed -i -e '/Tohoku/d' test.txt # 「Tohoku」を含まれていないか確認 $ cat test.txt Hokkaido Hokkaido Sapporo KantoKanto Ibaraki Mito Kanto Tochigi Utsunomiya Kanto Gumma Maebashi Kanto Saitama Saitama Kanto Chiba Chiba Kanto Tokyo Shinjuku Kanto Kanagawa Yokohama
「-i」の後の文字でバックアップファイルの拡張子を指定すると、バックアップファイル名が作成できます
$ sed -i.bak -e '/Tohoku/d' test.txt
ディスカッション
ピンバック & トラックバック一覧
[…] ウェブサイトを見る: ウェブページ […]