[英]How to find filename in file content with bash script?
我在我的 shell 中寫了這條命令,但它沒有按照我的意願行事,我無法弄清楚我做錯了什么。 我想從當前目錄中獲取文件,這些文件的內容中包含它們的名稱。
find -type f -exec grep -il {} +
我知道find -type f
為我提供了目錄中的標准文件,並且-exec
在給定文件('+')上執行帶有模式(文件名)的grep
命令。 我對嗎? 因為它沒有找到我為此目的專門創建的文件,所以我似乎不明白。
在給定文件 ('+')
+
對所有找到的文件執行命令。 {}
替換為當前目錄中的文件列表。
使用-exec echo grep -il {} +
調試。
你要:
-exec grep -Fil {} {} ';'
在名為{}
的文件中搜索文件名{}
作為模式。 ';'
終止命令。
我還添加了-F
來從字面上解釋模式。
當前目錄下的文件test.txt
文件內容包括“test”
find. -name 'test.txt' -exec grep -i 'test' {} \;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.