2012-12-18 48 views

回答

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 
+0

謝謝。這是網站有天使。我喜歡它。 – alwbtc

+0

如果我想在創建日期在12月01日之後的文件中搜索字符串,該怎麼辦?在這個搜索中我不關心文件名。 – alwbtc

+1

是的,請參閱編輯.. –

3

使用遞歸grep,如下圖所示。不需要find

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

,因爲你正在尋找一個固定的字符串,而不是一個正則表達式,使用-F選項來加速這一過程。

+0

..非常好的+1 –

+0

如果我想對創建日期在12月01日之後的文件中的字符串進行相同搜索,該怎麼辦?在這個搜索中我不關心文件名。 – alwbtc

+1

然後,您需要使用'find'和'mtime'選項。 – dogbane

1

我更喜歡使用:

發現。 -type f(-name'')-print0 | xargs的-0 grep的--color -n MyString的

...它會告訴你包含20121218.

EX的文件路徑,名稱和行號(彩色)的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/臂/ CONFIGS/G2-KDDI-perf_defconfi克: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

+0

,當然如果要搜索大小寫字符串,則使用-iname而不是-name。 –

相關問題