免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7503 | 回复: 9
打印 上一主题 下一主题

[文件目录] 查找文件名和匹配内容,然后移动文件 [复制链接]

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-02-11 00:35 |只看该作者 |倒序浏览
请教一个问题:
在一个用户的home目录下,查找名字为*aaa's*并且内容含有bbb的文件移动到dest文件夹里

例如:
cat aaa's
11111111
22222222
33333333

cat aaa's.txt
11111111
bbbbbb
222222222

那么将aaa's.txt移动到dest文件夹里,一条shell命令怎么写?

论坛徽章:
0
2 [报告]
发表于 2015-02-11 07:15 |只看该作者
本帖最后由 yogi_hys 于 2015-02-11 07:15 编辑

留个位置坐等高手解题


   

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
3 [报告]
发表于 2015-02-11 08:45 |只看该作者
  1. mv $(grep -irl "bbb" -- 源目录/*aaa\'s*) /目标目录
复制代码

论坛徽章:
11
CU十二周年纪念徽章
日期:2013-10-24 15:41:342015年辞旧岁徽章
日期:2015-03-03 16:54:15丑牛
日期:2015-01-14 10:36:40技术图书徽章
日期:2015-01-12 15:46:11白羊座
日期:2014-11-14 09:35:36狮子座
日期:2014-10-30 13:18:49巳蛇
日期:2014-10-11 12:52:08子鼠
日期:2014-09-28 14:11:06双鱼座
日期:2014-04-22 13:05:48午马
日期:2014-02-11 17:58:002015年迎新春徽章
日期:2015-03-04 09:55:28
4 [报告]
发表于 2015-02-11 09:23 |只看该作者
楼上的太牛了,膜拜,学习。

论坛徽章:
0
5 [报告]
发表于 2015-02-11 09:48 |只看该作者

  1. [~/Testbox]$ for i in *; do echo $i; cat $i;echo "======"; done
  2. aaa's
  3. aaaaaa
  4. dddddd
  5. fffff
  6. eeeee
  7. ggggg
  8. ======
  9. aaa's1
  10. aaa
  11. bbb
  12. ccc
  13. ddd
  14. ======
  15. aaa's2
  16. uuu
  17. fff
  18. ggg
  19. ======
  20. [~/Testbox]$ cp `grep bbb "aaa's"* | awk -F ":" '{print $1}'` ./Dest

  21. [~/Testbox]$ ls ./Dest/
  22. aaa's1

  23. [~/Testbox]$ cat ./Dest/*
  24. aaa
  25. bbb
  26. ccc
  27. ddd

复制代码
你改成mv就好了

回复 1# songyc_2015


   

论坛徽章:
0
6 [报告]
发表于 2015-02-11 09:51 |只看该作者
刚才看了下,只要 grep -l 就可以获取文件名

  1. mv `grep -l bbb "aaa's"*` ./Dest
复制代码
回复 4# dn833


   

论坛徽章:
7
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:18程序设计版块每日发帖之星
日期:2015-08-09 06:20:00每日论坛发贴之星
日期:2015-08-09 06:20:00程序设计版块每日发帖之星
日期:2015-08-22 06:20:00程序设计版块每日发帖之星
日期:2015-08-27 06:20:00
7 [报告]
发表于 2015-02-11 10:08 |只看该作者
mv $(grep -l bbb *aaa's*) dest

论坛徽章:
5
未羊
日期:2014-08-04 16:15:21天秤座
日期:2014-08-13 13:52:372015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:112015亚冠之浦和红钻
日期:2015-06-29 15:30:48
8 [报告]
发表于 2015-02-11 11:29 |只看该作者
回复 7# KoomIer


    有子目录就加r,想忽略大小写就加i,l是必须的

论坛徽章:
14
15-16赛季CBA联赛之辽宁
日期:2019-06-16 15:47:3515-16赛季CBA联赛之广夏
日期:2016-08-13 21:24:352015亚冠之武里南联
日期:2015-07-07 17:37:372015亚冠之萨济拖拉机
日期:2015-07-06 17:07:482015亚冠之全北现代
日期:2015-06-04 13:54:272015亚冠之城南
日期:2015-05-21 15:43:212015年亚洲杯之伊朗
日期:2015-04-25 18:20:362015年亚洲杯之伊朗
日期:2015-04-20 16:06:052015年亚洲杯之科威特
日期:2015-03-07 12:51:26丑牛
日期:2014-12-30 10:26:38申猴
日期:2014-09-28 22:40:18金牛座
日期:2014-09-13 21:12:22
9 [报告]
发表于 2015-02-11 13:36 |只看该作者
  1. find  ./  -name "*aaa's*" -exec  grep -rl "bb*" {}  \;|tr '\n' '\0'|xargs -0 -i mv "{}" test/
复制代码

论坛徽章:
20
卯兔
日期:2015-01-26 22:05:142015亚冠之萨济拖拉机
日期:2015-09-10 15:15:282015亚冠之阿尔希拉尔
日期:2015-09-25 17:37:53程序设计版块每日发帖之星
日期:2015-10-03 06:20:00程序设计版块每日发帖之星
日期:2015-12-09 06:20:00CU十四周年纪念徽章
日期:2015-12-17 09:07:15程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:34程序设计版块每日发帖之星
日期:2015-12-25 06:20:342015亚冠之广州富力
日期:2015-08-27 19:29:56每日论坛发贴之星
日期:2015-08-26 06:20:002015亚冠之阿尔希拉尔
日期:2015-05-18 17:26:27
10 [报告]
发表于 2015-02-11 23:27 |只看该作者
谢谢 dn833, KoomIer(古米),谢谢各位大神指导

我后来也想到了2种方法,只是复杂很多,sed awk grep find都用上
1.grep -rl 'bbb' *aaa\'s* | sed 's#'\''#\\'\''#' | xargs -i mv "{}" dest
2.find ./ -name "*aaa's*" -type f | sed "s#'#\\\'#" | xargs -i awk '/bbb/{sub(/'\''/,"\'\''",FILENAME);printf("cp %s %s\n",FILENAME,"dest"}' "{}" | sh
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP