ファイル名にPATTERNを含む特定のファイルを除き、一致するパターンを指定する方法

ファイル名にPATTERNを含む特定のファイルを除き、一致するパターンを指定する方法

ノート:以前に投稿した内容に基づいてこの質問を更新したため、一部の回答が私が尋ねたい内容と一致しない可能性があります。

サブディレクトリ内のファイルセット内のいくつかのテキストを検索し、ファイル名に "svn"を含む特定のファイルの結果をスキップしたいと思います。

どうすればいいですか?

ベストアンサー1

詳細は正確に何をしたいかによって異なりますが、否定的な視線役に立つかもしれません。一部の正規表現言語(PCREを含む)がこれをサポートしています。grepスイッチを使用してPCREを有効にすること-Pができるので、探している特定のパターンに応じて、これを使用していくつかのきちんとした作業を実行できますが、努力する価値はありません。

ただし、アップデートを読んだ後は、これを行うより良い方法があります。grep利用可能なオプション-exclude:

   --exclude=GLOB
          Skip  files  whose  base  name  matches  GLOB  (using   wildcard
          matching).   A  file-name  glob  can  use  *,  ?,  and [...]  as
          wildcards, and \ to quote  a  wildcard  or  backslash  character
          literally.

だから、あなたは簡単に行うことができます

grep -Inr TEXT --exclude='*.svn' dir/

おすすめ記事