禁止された行のテキストファイルがあるとしますforbidden.txt
。テキストファイルに存在するコマンド出力のすべての行をフィルタリングする簡単な方法は何ですか?
cat input.txt | exclude-forbidden-lines forbidden.txt | sort
次のようにgrep
を使用します。
$ grep -v -x -F -f forbidden.txt input.txt
grep
のオプションの長いリストは、
-v
一致の意味を逆にします。つまり、物事を探しますnot一致。-x
パターンに一致する場合、パターンが行全体に一致することを要求します。つまり、行のどこにも一致しません。-F
パターンに一致する場合、それを固定文字列として扱います。つまり、正規表現としては扱いません。-f
指定されたファイルからパターンを読み取ります(forbidden.txt
)。次に、それをsort
またはそれを使用して実行するものにパイプします。