頻繁に記載された条件を のファイルのリストを生成したいと思います。いくつかの文字列のすべてと複数の文字列のうちのどれかを含むファイルのcaseless grepのリストの名前
fcntlまたは名前空間を使用せずに、著作権とメインがあるファイル( )をすべて検索したいとします。ここで
は不器用なアプローチです:
fgrep -i -r -l copyright *|xargs fgrep -i -l main|xargs fgrep -i -l -v fcntl|xargs fgrep -i -l namespace
は標準ユーティリティを使用して、より洗練されたアプローチと同じ結果を達成するためにどのように誰もが知っていますか?
楽しいことに、私は自分のC++ 17プログラムを書いて、スピードの速い結果を達成し始めましたが、自分の仕事が不要であることを知りたいです。ここではそのコードと私のGitHubリポジトリで次のように(GNU)のgrepで
https://github.com/jlettvin/Greased-Grep
:
これをより強固にし、ファイル名に任意の文字を許可するには、そのグレップは(
-0
)ことを期待しNULバイト(-Z
)を含むファイル名とxargsのを隔てる必要とすることができます'grep -lv 'pattern'はあなたがしたいことをしていると思う。あなたは '' pattern'を含んでいないファイルを望んでいますが、 '' pattern'とマッチしない行を含むファイルです。通常はすべてのファイルです。 –