0

名前に「20121218」が含まれるファイルで「MY:STRING」文字列を再帰的に検索したい場合、出力にはファイル名と場所が表示されます。検索では、サブディレクトリの下のファイルも検索する必要があります。

4

3 に答える 3

3

grep以下に示すように、再帰を使用します。の必要はありませんfind

grep -Flr --include="*20121218*" "MY:STRING" /path/to/dir

正規表現ではなく固定文字列を検索しているため、-Fオプションを使用して高速化します。

于 2012-12-18T10:17:32.867 に答える
3

とを使用findgrepます。

find . -type f -name '*20121218*' -exec fgrep -l "MY:STRING" {} \;

説明:

findコマンド検索。

.現在のディレクトリの検索を開始します。

-type fファイルにのみ関心があります。

-nameファイル名の一致'*20121218*'

-exec見つかったファイルに対して次のコマンドを実行します。

fgrep文字列 grep を修正しました。

-l一致を含むファイル名のみを出力します。

{}コマンドからの一致したファイルのリストfind

\;デリミタ。

編集:

$ find . -type f -mtime -18
于 2012-12-18T10:08:44.360 に答える
1

私は使用することを好みます:

探す 。-type f ( -name ' 20121218 ' ) -print0 | xargs -0 grep --color -n MYSTRING

...これにより、20121218 を含むファイル内で MYSTRING が配置されているすべての場所で、ファイル パス、名前、および行番号 (色付き) が表示されます。

元。私のAndroidカーネルソースから:

探す 。-type f ( -name ' config ' ) -print0 | xargs -0 grep --color -n MSM8974

多くを返しますが、ここにいくつかあります:

./arch/arm/mach-msm/Kconfig:254:config ARCH_MSM8974

./arch/arm/mach-msm/Kconfig:255: bool "MSM8974"

./arch/arm/configs/g2-kddi-perf_defconfig:41:CONFIG_ARCH_MSM8974=y

./arch/arm/configs/g2-kddi-perf_defconfig:44:CONFIG_MACH_MSM8974_G2_KDDI=y

./arch/arm/configs/lgl22_defconfig:314:CONFIG_ARCH_MSM8974=y

./arch/arm/configs/g2-open_com-perf_defconfig:503:CONFIG_MACH_MSM8974_A1=y

./arch/arm/configs/g2-open_com-perf_defconfig:516:CONFIG_SND_SOC_MSM8974=y

于 2014-08-16T06:56:39.323 に答える