5

次の find コマンドを使用して、入力テキスト パターンを持つすべてのファイルを検索して表示します。

探す 。-type f -print|xargs grep -n "パターン"

多くのプロジェクト フォルダーがあり、それぞれに「Makefile」という名前の独自のメイクファイルがあります (ファイル拡張子はなく、「Makefile」のみ)。

上記のコマンドを使用して、すべてのプロジェクト フォルダーに存在する Makefile という名前のファイルでのみ特定のパターンを検索するにはどうすればよいですか?

-広告。

4

7 に答える 7

7

-printは必要ありません (少なくとも GNUfind実装では)。-name引数でファイル名のパターンを指定できます。したがって、コマンドは次のようになります。

find . -name Makefile | xargs grep pattern

于 2009-04-07T18:35:35.743 に答える
2

ディレクトリ パスにスペースや奇数文字が含まれている場合は、null で終了する方法を使用する必要があります。

 find . -name Makefile -print0 | xargs -0 grep pattern
于 2009-04-07T18:37:55.190 に答える
1
find . -type f -name 'Makefile' | xargs egrep -n "pattern"

非常に長いパスがある場合は egrep を使用します

の複製:これ

于 2009-04-07T18:36:05.257 に答える
1

grep -R "文字列" /パス

このリンクを見つけてください http://rulariteducation.blogspot.in/2016/03/how-to-check-particluar-string-in-linux.html

于 2016-03-17T12:25:04.853 に答える
1

xargsを使用しての使用を避けることができます-exec:

find . -type f -name 'Makefile' -exec egrep -Hn "pattern" {} \;

-Honegrepを指定すると、一致するファイルへのフル パスが出力されます。

于 2009-04-07T18:45:18.683 に答える
0

大きなディスク容量を占有する大きなファイルを見つける

複数のコマンドを組み合わせる必要があります。

find . -type f | xargs du -sk | sort -n | tail;
于 2014-01-23T13:50:21.560 に答える
0

ff コマンド、つまり ff -p .format を使用できます。例: ff -p *.txt

于 2009-10-08T16:02:22.603 に答える