回答
在這裏,您將發送文件名(find command
的輸出)作爲egrep的輸入;你實際上想要在文件的內容上運行egrep。
這裏有幾個選擇:
find . -name "*.txt" -exec egrep mystring {} \;
甚至更好
find . -name "*.txt" -print0 | xargs -0 egrep mystring
檢查find command help檢查什麼單一的論據做。
第一種方法會爲每個文件產生一個新的進程,而第二種方法會傳遞多個文件作爲egrep的參數;需要-print0和-0標誌來處理可能令人討厭的文件名(例如,即使文件名包含空格,也允許正確分隔文件名)。
嘗試:
find . -name '*.txt' | xargs egrep mystring
有兩個問題與您的版本:
首先,*.txt
將首先由外殼擴展,讓您在當前目錄中的文件的列表以.txt
結尾,因此舉例如下:
[[email protected]:~]$ ls *.txt
test.txt
[[email protected]:~]$
你的find
命令將變成find . -name test.txt
。剛剛嘗試以下說明:
[[email protected]:~]$ echo find . -name *.txt
find . -name test.txt
[[email protected]:~]$
其次,egrep
並不需要從文件名STDIN
。將它們轉換爲需要使用的參數xargs
我也建議圍繞以下模式 - 名稱用引號括起來,以防止shell進行模式匹配 –
我想感謝你們所有人提供這樣全面的答案。 – Tolga
find . -name *.txt | egrep mystring
這不會因爲egrep
工作將由find . -name *.txt
這只是路徑*.txt
文件生成的輸出內尋找mystring
。
相反,你可以使用xargs
:
find . -name *.txt | xargs egrep mystring
你可以使用
find . -iname *.txt -exec egrep mystring \{\} \;
這裏將返回的是具有與ERROR
開頭的線路全部*.log
文件的文件路徑的例子:
find . -name "*.log" -exec egrep -l '^ERROR' {} \;
還有一個從egrep的,你可以使用
egrep -R "pattern" *.log
這不起作用。如果參數列表中提供了-R選項,則它只會遞歸到目錄中。在這種情況下,這些目錄中的所有文件都將被讀取,而不僅僅是以.log結尾的文件。如果您使用此方法取得任何成功,這是因爲在當前目錄中有以.log結尾的文件,因爲那時shell將解析* .log。 –
也許用'egrep -R「模式」--include = * .log .'? – moala
如果只想文件名遞歸選項:
find . -type f -name '*.txt' -exec egrep -l pattern {} \;
如果你想要的文件名和匹配:
find . -type f -name '*.txt' -exec egrep pattern {} /dev/null \;
- 1. 使用Hadoop查找包含特定字符串的文件
- 2. 使用grep查找包含字符串的文件
- 3. 如何查找包含空字符串的文件
- 4. 如何查找包含給定字符串的文件名
- 5. 如何查找包含字符串的所有文件?
- 6. bash - 如何查找和壓縮包含字符串的文件?
- 7. 如何使用grep查找包含2個字符串的文件?
- 8. 如何使用cleartool查找獲取包含特定字符串的文件?
- 9. 如何檢查文件是否包含字符串(使用Nant)?
- 10. Cygwin/Linux - 從文件中查找包含字符串的文件
- 11. 如何使用Sublime Text的「在文件中查找」來查找包含多個不同字符串的文件?
- 12. 查找字符串是否包含字
- 13. 查找包含給定的字符串
- 14. 如何查找文本是否包含url字符串
- 15. 如何找到所有不包含字符串的文件?
- 16. Linux - 查找包含字符串名稱的文件
- 17. Solaris:查找不包含字符串的文件(替代grep -L)
- 18. 查找不包含選定字符串的文件
- 19. 查找包含字符串出現的文件
- 20. 查找包含點和點後變化字符串的文件
- 21. 查找不包含搜索字符串的文件
- 22. 如何查找包含名稱中的字符的文件
- 23. 如何查找在iOS中包含@符號的子字符串
- 24. Rails:如何查找包含特定字符串的字段
- 25. 查找不包含字符串
- 26. 我可以使用grep來查找包含特定字符串的文件嗎?
- 27. Linux-如何查找名稱中包含特定字符串的文件?
- 28. Mongodb。如何查找包含所有子字符串的字符串?
- 29. 如何查找字符串是否包含任何字符串列表項?
- 30. PHP如何查找如果字符串只包含子字符串
在第一個命令結尾處缺少'\ +'或'\;'。 – spatz
這是否嘗試在mystring中查找文件名?我認爲他正在尋找其他方法。 – Kevin
@spatz:謝謝你的評論,我修正了這個例子。 –