将包含其内容中特定文本的文件从文件夹复制到其他文件夹

时间:2013-08-26 18:37:33

标签: unix

有时我遇到过这种情况,我必须将包含特定模式的所有文件从文件夹复制到另一个文件夹。

例如,DirA包含100个文件,其中有60个文件包含模式FOO。我的要求是将这60个文件从DirA复制到DirB

我通常会编写一个小的shell脚本来完成这项工作并且它可以正常工作。但是,我试图理解是否有一种方法只使用一些命令的组合,这样我就不需要编写任何shell脚本。

4 个答案:

答案 0 :(得分:6)

您可以使用

cp `grep -l 'FOO' dirA/*` dirB/

grep -l只会输出与模式匹配的文件名。

答案 1 :(得分:1)

复制包含特定内容和保留目录结构的文件可以通过以下方式完成:

cp --parents `grep -lr 'text_content' ./*` /path/to/copy/

答案 2 :(得分:0)

以下脚本将适用于您所需的内容

cd /"path were file exist"
grep -w "word you want to search inside a file" "file.name/write nothing in case    multiple files" >/dev/null

if [ $? -eq 0 ]

then
     mv ls -ltr | grep your word /path to move on 

     fi

答案 3 :(得分:0)

如果所有必需的文件都以 FOO

开头
cp dirA/FOO* dirB