我知道這個問題可能對你們中的一些人來說很簡單,但我嘗試了幾種組合並且搜索了很多,沒有成功。在文件和輸出文件名(文件命令和grep)中搜索具有特定文本的行
問題:我有一堆給定文件名的文件,但在不同的目錄中。
例如,我在目錄a,b,c,d中有一個名爲'THEFILE.txt'的文件。我在一個包含這些子目錄的目錄中。在'THEFILE.txts'中的每個'我正在尋找具有以下模式的行:'有這個屬性等等等等等等。所以我對這條線肯定知道的是,它以'擁有這個屬性'開始,以'_apple'結尾。
我想:
發現。 -name'THEFILE.txt'-exec grep -l'有這個屬性'{} \; 這個工作,但我得到'擁有這個屬性'的每一行。我只想用_apple結尾
所以我試過了: 找到了。 -name'THEFILE.txt'-exec grep -l'擁有此屬性* _apple'{} \; //不起作用,從我的谷歌搜索,我不指望它。
那麼,接下來我試過了: 找不到。 -name'THEFILE.txt'-exec grep -l'擁有此屬性[! - 〜] * _ apple'{} \; //不起作用
找不到。 -name'THEFILE.txt'-exec grep'有這個屬性'{} \; | grep'_apple $' //此輸出所有匹配的行,但不是文件名
查找。 -name'THEFILE.txt'-exec grep'有這個屬性'{} \; | grep的-l '_apple $' //說文件標準輸入
預期輸出:(比如文件和C具有所需的線)
./a/THEFILE.txt
./c/THEFILE.txt
嗨託尼,感謝您的回覆,但我需要在開頭有「此屬性」和結尾處有「_apple」的行。你的soln只匹配1個condn,我已經知道如何做 –
所以,只需更新正則表達式以匹配你想要的:'grep -r「^擁有這個屬性。* _ apple $」。| awk -F:'{print $ 1}'' – tlm
謝謝,這完全解決了我的問題。我真的需要學會更好地使用正則表達式。 –