ptext1
ptext2
ptext3
ptext4
FILE1.TXT這些都是我想從一個目錄下找到部分文件名(庫名)。喜歡的東西
cat file1.txt | xargs find . -name "*$0*"
或者說,
cat file.txt | awk '{system("find . -name " *$0*)}'
他們都不是工作。 請建議。
ptext1
ptext2
ptext3
ptext4
FILE1.TXT這些都是我想從一個目錄下找到部分文件名(庫名)。喜歡的東西
cat file1.txt | xargs find . -name "*$0*"
或者說,
cat file.txt | awk '{system("find . -name " *$0*)}'
他們都不是工作。 請建議。
我敢肯定有一個更優雅的方式,但你總是可以遍歷並運行在每個find
:
更新,以反映的意見建議
while read -r filename; do
find . -type f -name "*$filename*"
done < file1.txt
不一定更優雅,但更快,如果這是一個問題,將組裝一個'find'命令行,看起來像'find -name
只是爲了防止高速文件/路徑名'read -r'可能會有所幫助。您可能還想添加'-type f'來通過find命令刪除匹配的目錄。 –
關注評論? – Will
一個與xargs的方式
xargs -I{} find . -name "*"{}"*" < file
xargs將標準輸入追加到傳遞的命令中;它不會設置$ 0(但是當你的shell解析該行時,你的shell可能會擴展),所以你的想法不起作用。 xargs也可能同時附加多個輸入字,您必須使用-n 1來禁止輸入字。而不是xargs,你可以簡單地在$(cat file1.txt)中聲明'foreach文件;找到-name「* $ file *」;完成「等等。 –
總是嘗試並避免** UUOc **(貓的不必要的用戶)。幾乎每個使用**貓管**或'cat | foo'可以通過避免不必要的'cat'子shell產生的方式來完成。 –
@ DavidC.Rankin很確定它的'貓沒用'! –