我有一個腳本,我從主目錄運行以搜索名爲「script.sh」的所有包含串「西瓜」。它沒有找到任何東西,但我可以在子目錄中清楚地看到這些腳本。可能有人請建議改變命令我使用:爲什麼我的shell腳本找不到任何東西(find。-name script.sh | grep watermelon)
find . -name script.sh | grep watermelon
我有一個腳本,我從主目錄運行以搜索名爲「script.sh」的所有包含串「西瓜」。它沒有找到任何東西,但我可以在子目錄中清楚地看到這些腳本。可能有人請建議改變命令我使用:爲什麼我的shell腳本找不到任何東西(find。-name script.sh | grep watermelon)
find . -name script.sh | grep watermelon
您需要使用xargs的:
find . -name script.sh | xargs grep watermelon
xargs的將修改的行爲對文件進行搜索,而不是在短短搜索文件的名稱。
find
返回默認情況下找到的文件名。如果你想讓它在文件中進行搜索,那麼你需要管它xargs
或使用-exec
和-print
謂詞:
find . -name script.sh -exec grep -q watermelon {} \; -print
使用-type f
指示文件
find . -type f -name "script.sh" -exec grep "watermelon" "{}" +;
,或者如果你有bash的4
shopt -s globstar
grep -Rl "watermelon" **/script.sh