Cygwin / Linux - 查找包含文件字符串的文件

时间:2017-04-26 10:47:31

标签: linux unix grep cygwin

我正在尝试查找包含位于文件名中的文本文件中的字符串的文件,然后将这些文件复制到新目录。

Example 1.txt contains strings line by line:
1234
1666

Directory contains files:
JOHN-1234-TEXT.CSV
DAVE-1666-TEXT.CSV
LAURA-1826-TEXT.CSV

If code is successful it will copy the files to a new specified directory:
JOHN-1234-TEXT.CSV
DAVE-1666-TEXT.CSV

如果有人能帮助我会非常感激。

2 个答案:

答案 0 :(得分:0)

查找 + grep + tr + xargs 管道方法:

find olddir -type f -print | grep -f "1.txt" | tr '\n' '\0' | xargs -0 -I{} cp {} newdir

olddir目录包含初始文件

grep -f "1.txt" - 从文件中获取模式,每行一个

答案 1 :(得分:0)

快速解决方案:

while read line;do
    find -iname "*$line*" -exec cp {} newdir/ \;
done < string_file