首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何搜索文本字符串并将这些文件复制到另一个目录

问如何搜索文本字符串并将这些文件复制到另一个目录
EN

Stack Overflow用户
提问于 2013-07-04 04:09:33
回答 3查看 5.4K关注 0票数 0

我需要在一些文件中找到一个文本字符串。这将给我一个清单:

find . -type f -print0 | xargs -0 grep -il "google"

然后,我需要将这些文件复制到一个文件夹中,并重新命名它们。所以我想我需要把它们再吹到这样的地方

代码语言:javascript
复制
| xargs -0 -n1  -I '{}' cp '{}' ../testTarget/{}_RECOVERED

唉:

代码语言:javascript
复制
find . -type f -print0 | xargs -0 grep -il "google" |
xargs -0 -n1  -I '{}' cp '{}' ../testTarget/{}_RECOVERED

结果:cp: {}: No such file or directory

请指教

  • 文件名中有空格和逗号(Dovecot)
EN

回答 3

Stack Overflow用户

发布于 2013-07-06 16:03:35

代码语言:javascript
复制
find . -type f -print0 | xargs -0 grep -lh "google" | xargs -I % cp % ../testTarget/%_RECOVERED

或

代码语言:javascript
复制
find SOURCE/ -type f -print0 | xargs -0 grep -lh "SEARCH_STRING" | xargs -I % cp % TARGET_DIR/%_RECOVERED
票数 1
EN

Stack Overflow用户

发布于 2013-07-04 08:02:10

代码语言:javascript
复制
for i in `ls -1tr`
{
SEARCH_STRING_LINE_NO=`grep -n SEARCH_STRING i | cut -d: -f1`;
if [ SEARCH_STRING_LINE_NO > 0 ] then
cp i folder_path_where_u_want_to_copy
fi
}

用要查找的文本字符串替换SEARCH_STRING。

将folder_path_where_u_want_to_copy替换为要移动包含SEARCH_STRING的文件的文件夹路径

这应该将包含SEARCH_STRING的文件复制到folder_path_where_u_want_to_copy文件夹中。

我还没有测试这段代码,因为我现在还没有unix盒,但是至少它应该给你一个方法的想法。

票数 0
EN

Stack Overflow用户

发布于 2013-07-04 08:13:24

下面的命令将grep的pattern和copy文件到您想要的位置。

代码语言:javascript
复制
find /path/to/search -type f -exec grep -q "pattern" '{}' ';' -exec cp '{}' /path/to/copy ';'

一旦文件被复制,您就可以使用rename命令相应地重命名它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17461738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档