除外リストにある文字を含む行を削除する方法「シェルスクリプト」

アカウント・ディレクトリ等の一覧のをファイルが有り、そのファイル内で特定の文字を含む行を削除したい場合は、「sed」コマンドを利用すればできます。
その削除したい文字列を除外リストのようなファイルにある場合は、while read line を利用して除外リストのファイルを読み込み「sed」コマンドで該当行を削除して上書き保存すれば削除できます

# 都道府県がローマ字表記で表示されたファイルがあります
$ cat test.txt
hokkaido
aomori
iwate
miyagi
akita
yamagata
fukushima
ibaraki
tochigi
gunma
saitama
chiba
tokyo
kanagawa
niigata
toyama
ishikawa
fukui
yamanashi
nagano
gifu
shizuoka

下記にある都道府県は、都道府県は一覧リストにある場合は一覧リストより除外(削除)して表示したいです

$ cat exclude.txt
ibaraki
gunma
chiba
kanagawa
niigata
ishikawa

その場合は、while read line を利用して除外リストのファイルを読み込み「sed」コマンドで該当行を削除して上書き保存すれば削除できます

#!/bin/bash

while read line
do
  echo $line
  sed -i -e "/$line/d" test.txt
done < exclude.txt

 

 

 

スポンサーリンク