プロキシ フィルタ用の大きなドメイン リスト ファイルがあります。別のファイルには、例外ファイルのすべての行をフィルター ファイルから削除したいいくつかの例外があります。「sed」操作で可能ですか?
ありがとう。
通常、これgrep
には-v
および-f
オプションを使用できます。実際、文字列が正規表現ではなく固定文字列と見なされるようにするために、おそらくfgrep
orフラグも使用する必要があります。-F
これがないと、たとえば、infile
実際には固定文字列と一致しないにもかかわらず、以下のファイルの最初の行が削除されます。
-v
一致する行が保持されるのではなく破棄されるという意味を逆転させ、-f
コマンドラインではなくファイルからパターンを取得します。
例えば:
pax> cat infile
http://wwwxdodgy.com/rest-of-url
http://www.dodgy.com/rest-of-url
ftp://this/one/is/good
https://www.bad.org/rest-of-url
pax> cat exceptions
http://www.dodgy.com
https://www.bad.org
pax> fgrep -v -f exceptions infile
ftp://this/one/is/good
これは、grep を使用する方が簡単です。
grep -v -x -F -f /path/to/exclude /path/to/file