免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10345 | 回复: 6

[文本处理] 如何 shell 脚本实现搜索目录下的全部文件,并分类 [复制链接]

论坛徽章:
0
发表于 2015-04-26 21:14 |显示全部楼层
本帖最后由 Rimice 于 2015-04-26 22:00 编辑

搜索xx 目录下的文件及子目录,如果是*.c文件 就cat > ~/work/*.app  如果是*.h文件就 cp 到~/work/

谢谢,shell深奥一点就不会了,想了半天,求助万能的吧友献策.谢谢

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
发表于 2015-04-26 21:27 |显示全部楼层
第一个
  1. find . -type f -name "*.c"  -exec  echo {}  >  ~/work/xx \;
复制代码
第二个
  1. find . -type f -name "*.h" -exec  cp -rf {}  ~/xx \;
复制代码

论坛徽章:
0
发表于 2015-04-26 21:42 |显示全部楼层
回复 2# drakness

这样我试了下,只是echo去了一个文件名,我想要cat 出原目录下的.c文件内容.
谢谢


   

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
发表于 2015-04-26 21:50 |显示全部楼层
回复 3# Rimice

改下就行了,我自己echo 惯了
  1.      find . -type f -name "*.c"  -exec  cat {}  >  ~/work/xx \;
复制代码

论坛徽章:
0
发表于 2015-04-26 21:55 |显示全部楼层
回复 4# drakness
但是我想保留原来的xx下的.c文件的文件名.
这样就所有.c内容都cat 到xx文件了

   

论坛徽章:
10
2015年亚洲杯之科威特
日期:2015-04-13 13:51:5315-16赛季CBA联赛之山东
日期:2016-01-16 18:35:0815-16赛季CBA联赛之广东
日期:2016-01-04 15:26:23程序设计版块每日发帖之星
日期:2015-11-13 06:20:002015亚冠之阿尔艾因
日期:2015-11-10 12:32:242015亚冠之阿尔沙巴布
日期:2015-05-15 18:26:49羊年新春福章
日期:2015-04-28 16:45:112015年亚洲杯之伊拉克
日期:2015-04-25 20:06:30羊年新春福章
日期:2015-04-13 13:53:2015-16赛季CBA联赛之八一
日期:2016-01-20 18:23:49
发表于 2015-04-26 22:59 |显示全部楼层
回复 5# Rimice
你是这个意思吧

第一个

  1. #!/bin/bash
  2. for file in `find xx -type f -name "*.c" | awk -F. '{print $1}'`
  3. do
  4. cat $file.c > ~/work/$file.app
  5. done

复制代码
第二个

  1. #!/bin/bash
  2. for file in `find xx -type f -name "*.h" `
  3. do
  4. cp -rf  $file> ~/work/
  5. done
复制代码

论坛徽章:
0
发表于 2015-04-26 23:21 |显示全部楼层
本帖最后由 killeve 于 2015-04-26 23:23 编辑

他是要重命名   

find xx -type f -name "*.c" | awk -F. '{print "cp -f  "$1".c  ~/work/"$1".app"}' |sh

我不知道为什么要cat cp不行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP