搜索具有特定文本的文件并将这些文件复制到另一个目录

搜索具有特定文本的文件并将这些文件复制到另一个目录

如何在目录中搜索包含特定文本的文件并将它们复制到另一个目录?我正在使用 .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 将获取文件列表,只要最后一个路径是目录,请将它们全部复制到那里。

相关内容