如何在目錄中搜尋包含特定文字的檔案並將它們複製到另一個目錄?我正在使用 .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 searchstring
。searchstring
答案2
您只需從要搜尋的基本目錄中執行即可
cp $(grep -r -l "the pattern" *) target_directory
grep -r
意味著迴避-l
表示列出檔案路徑而不是其中的符合項。放置
$()
命令將執行它並將結果放置在外部命令中。cp 將取得檔案列表,只要最後一個路徑是目錄,請將它們全部複製到那裡。