簡體   English   中英

Bash:查找包含特定字符串的文件並將它們復制到文件夾中

[英]Bash: Find files containing a certain string and copy them into a folder

我想要什么:在 bash 腳本中:在當前目錄中查找包含某個字符串“teststring”的所有文件並將它們復制到子文件夾“./testfolder”中

找到這個以找到我正在尋找的文件名

找 。 -type f -print0 | xargs -0 grep -l "teststring"

..並將找到的文件復制到另一個文件夾(此處按文件名中的字符串選擇):

找 。 型的F -iname “stringinfilename” -exec CP {} ./testfolder/ \\;

結合這兩個命令以實現我在頂部描述的內容的最佳方法是什么?

只需讓 find 兩者都做:

find . -name subdir -prune -o -type f -exec \
    grep -q teststring "{}" \; -exec cp "{}" subdir \;  

請注意,如果您不嘗試添加到您正在工作的目錄中,那么像這樣的事情會容易得多。換句話說,寫入同級目錄而不是寫入子目錄。 如果您想在子目錄中結束數據,請在完成mvmv 這樣,您就不必擔心prune (即,您不必擔心 find 下降到子目錄並嘗試復制工作)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM