[解決済み] grep --exclude/--include構文を使って特定のファイルをgrepしないようにする
質問
という文字列を探しています。
foo=
をディレクトリツリー内のテキストファイルで表示します。一般的なLinuxマシンで、bashシェルを持っています。
grep -ircl "foo=" *
また、ディレクトリの中には
"foo="
. これらの結果は関連性がなく、検索が遅くなるので、これらのファイル(主にJPEGとPNG画像)の検索をgrepがスキップするようにしたいのです。どうすればいいのでしょうか?
があるのは知っています。
--exclude=PATTERN
と
--include=PATTERN
というオプションがありますが、パターン形式はどうなっているのでしょうか?grepのmanページにはこう書いてあります。
--include=PATTERN Recurse in directories only searching file matching PATTERN.
--exclude=PATTERN Recurse in directories skip file matching PATTERN.
で検索すると grep include , grep include exclude , grep exclude とバリアントは何も関連するものを見つけられませんでした
特定のファイルだけをgrepする良い方法があれば、大賛成です。問題のファイルを移動することは選択肢にありません。特定のディレクトリだけを検索することはできません(ディレクトリ構造が大混乱で、あらゆるものがどこにでもある状態です)。また、何もインストールできないので、一般的なツール(例えば グレップ または、提案された 見つける ).
解決方法は?
シェルを使用する グロビング構文 :
grep pattern -r --include=\*.cpp --include=\*.h rootdir
の構文は以下の通りです。
--exclude
は同一です。
なお、スターはシェルで展開されないようにバックスラッシュでエスケープされます(引用すると、例えば
--include="*.cpp"
ということです。) さもなければ、現在の作業ディレクトリにパターンに一致するファイルがある場合、コマンドラインは次のように展開されます。
grep pattern -r --include=foo.cpp --include=bar.cpp rootdir
という名前のファイルのみを検索します。
foo.cpp
と
bar.cpp
これは、あなたが望んだものではない可能性が高いです。
2021-03-04更新
の使用を削除するため、元の回答を編集しました。 ブレース展開 これは、Bash や zsh などのシェルが提供する機能で、このようなパターンを簡略化することができます。
元の例は
grep pattern -r --include=\*.{cpp,h} rootdir
を検索すると、すべての
.cpp
と
.h
ディレクトリにルートされたファイル
rootdir
.
関連
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] 特定のファイル/フォルダを除外してディレクトリをtarするシェルコマンド
-
[解決済み] grep -R からディレクトリを除外するにはどうすればよいですか?
-
[解決済み] Gitのコミットの差分や内容を特定の単語でgrepする方法
-
[解決済み] grepで1つの単語を除外するにはどうすればよいですか?
-
[解決済み】特定の拡張子を持つファイルのみを再帰的にgrepするにはどうすればよいですか?
-
[解決済み】パス/ファイル:行を表示しないgrep
-
[解決済み] grep --includeオプションを複数のファイルタイプに使用するにはどうすればよいですか?
-
[解決済み] 多くのファイルを含む2つのフォルダの内容を比較する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] grepを使って、"hello "という文字列を持つすべてのファイルをカレントディレクトリから検索し、.hと.ccのファイルだけを表示するにはどうすればよいですか?
-
[解決済み] time(1) の出力における 'real', 'user' および 'sys' はどのような意味ですか?
-
[解決済み] grep -R からディレクトリを除外するにはどうすればよいですか?
-
[解決済み] PowerShellの*Nix 'which'コマンドに相当するもの?
-
[解決済み] ダッシュ/ハイフンで始まる文字列をgrepするにはどうしたらいいですか?
-
[解決済み] git grep検索から特定のディレクトリ/ファイルを除外する方法
-
[解決済み] コマンドライン:検索結果をrmにパイプする
-
[解決済み] パイプラインでstdoutを強制的にラインバッファリングする
-
[解決済み] ファイル内の複数行のパターンを検索するにはどうすればよいですか?
-
[解決済み] grep --includeオプションを複数のファイルタイプに使用するにはどうすればよいですか?