免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: abclhx
打印 上一主题 下一主题

如何将同一目录下的多个文本合并成一个文件 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2007-04-01 22:37 |只看该作者
在tcsh下
ls >new和ls * >new
的结果是一样的。

论坛徽章:
0
12 [报告]
发表于 2007-04-01 22:47 |只看该作者
测试了下,的确如此,但偶不懂tcsh,也许它执行shell的步骤和bash有些区别吧。

另外,我刚才给的
  1. ls * >new
复制代码
当有目录时得到非期望的内容,改成
  1. ls -d * >new
复制代码

[ 本帖最后由 一梦如是 于 2007-4-1 22:51 编辑 ]

论坛徽章:
0
13 [报告]
发表于 2007-04-01 22:51 |只看该作者
我记得很久以前网大侠说过,类似cat *.txt > new.txt这样的命令,假设当前目录下恰好有一个new.txt,在执行cat命令之前,重定向会为cat输出做好准备,首先清空new.txt里面的内容,这是无庸置疑的。当时有好多shell的大人物都参与讨论过,所以我记得特清楚,至于梦兄举的这两个例子,ls > net 和 ls * > new,在我的系统上(bash)也一样,不知道梦兄是为了说明什么

论坛徽章:
0
14 [报告]
发表于 2007-04-01 23:00 |只看该作者
您用
  1. ls > net
复制代码
则net文件中包含net这条内容,然后用
  1. ls -d * >new
复制代码
new文件不包含new这条内容,但包含上条命令创建的net这个文件的这条内容。
这时比较这两个文件,当然相同。

如果两个命令都重定向到new文件,则会看到区别,第一条命令生成的new文件中包含new这条信息,而第二条命令生成的new文件则不包含new这条信息。

论坛徽章:
0
15 [报告]
发表于 2007-04-01 23:44 |只看该作者
细想了好久,梦足的两个命令没有什么区别

睡觉了,明天还要起来读英语,今年读一年英语,明年不买中文版的书了,争取把英语搞定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP