免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2772 | 回复: 11
打印 上一主题 下一主题

请问如何把很多个文件组合成一个? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-18 15:50 |只看该作者 |倒序浏览
我有一个目录,下面有很多存储文本信息的文件,我现在想通过shell编程,把这些文件的内容放倒一个新文件里去,怎么做呢?

论坛徽章:
0
2 [报告]
发表于 2003-11-18 16:01 |只看该作者

请问如何把很多个文件组合成一个?

首先进入到该目录:

然后:
find ./ -name "*" -exec cat {} >> 新文件 \;

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2003-11-18 16:10 |只看该作者

请问如何把很多个文件组合成一个?

嗯... 上面那行 find 建議多加兩個參數:
-type f :只限定為文件而不要目錄,否則 cat 會有 error 。
-maxdepth 1 :只找當前目錄,而不挖到子目錄去。

給樓上參考一下。  ^_^

论坛徽章:
0
4 [报告]
发表于 2003-11-18 16:40 |只看该作者

请问如何把很多个文件组合成一个?

非常感谢,再请问一下
find ./ -name "*" -exec cat {} >> 新文件 \;

新文件后面的\;表示什么意思呢

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-11-18 16:51 |只看该作者

请问如何把很多个文件组合成一个?

\ 是 ecape charactor ,
可以將 shell meta (特殊功能的字符)從 command line 中關閉。

若 command line 中碰到 ; 字符,你可簡單化的理解為一個 enter 鍵
(sorry,這有點誤導,但我不想詳講了。)
若 \; 呢,這個 ; 就不被 command line 解釋,而保留下來給 find 命令的 -exec 使用...

论坛徽章:
0
6 [报告]
发表于 2003-11-18 17:03 |只看该作者

请问如何把很多个文件组合成一个?


  1. for file in $(ls -aR)
  2. do
  3.         if [[ -f $file ]];then cat $file >/dev/null ;fi
  4. done>newfiles
复制代码

论坛徽章:
0
7 [报告]
发表于 2003-11-18 17:22 |只看该作者

请问如何把很多个文件组合成一个?

to bjgirl

你的方法好像有问题,
ls -aR
的输出不包括文件路径全名, 所以只能合并当前目录中的文件,
不能递归子目录。

  1. for file in $(fine .)  ;
  2. ...
复制代码

就行了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-11-18 18:01 |只看该作者

请问如何把很多个文件组合成一个?

cat * >newfile

论坛徽章:
0
9 [报告]
发表于 2003-11-18 19:23 |只看该作者

请问如何把很多个文件组合成一个?

[quote]原帖由 "CharlesWang2"]就行了。[/quote 发表:

ls的-R选项就是递归的呀~~

论坛徽章:
0
10 [报告]
发表于 2003-11-18 19:26 |只看该作者

请问如何把很多个文件组合成一个?

[quote]原帖由 "admirer"]cat * >newfile[/quote 发表:

*不包括.*,另外,*还有可能不是可以被cat的文件呀~~,还是加个test保险些!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP