搜尋具有特定文字的檔案並將這些檔案複製到另一個目錄

搜尋具有特定文字的檔案並將這些檔案複製到另一個目錄

如何在目錄中搜尋包含特定文字的檔案並將它們複製到另一個目錄?我正在使用 .ksh shell。

答案1

man xargs並觀察-I旗幟。

find /path/to/directory -type f -exec grep -il "your pattern" {} \; | xargs -I % cp % /dest/dir/

若要儲存輸入,請將此命令放入 shell 腳本中:

#!/usr/bin/ksh 
# Script name: locate
find /path/to/directory -type f -exec grep -il "$1" {} \; | xargs -I % cp % /dest/dir/

要運行,請輸入您要搜尋的文字所在的位置locate searchstringsearchstring

答案2

您只需從要搜尋的基本目錄中執行即可

cp $(grep -r -l "the pattern" *) target_directory
  • grep -r意味著迴避
  • -l表示列出檔案路徑而不是其中的符合項。

  • 放置$()命令將執行它並將結果放置在外部命令中。

  • cp 將取得檔案列表,只要最後一個路徑是目錄,請將它們全部複製到那裡。

相關內容