免费注册 查看新帖 |

Chinaunix

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

如何提高cat的效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-02 04:49 |只看该作者 |倒序浏览
假设我有一堆比较大的数据文件,
data1.dat
data2.dat
data3.dat
....
dataN.dat

我想把他们用cat连接成为一个文件.

我可以: cat data?.dat >> all.dat

也可以:
for i in `ls data?.dat`; do
  cat $i >> all.dat
done

问题1. 这两个方式等价吗?
后者应该是sequential的吧? 那末前者是如何执行的?

2. 大家有更快一点的方案吗

请赐教.谢谢

论坛徽章:
0
2 [报告]
发表于 2006-01-02 12:50 |只看该作者
NAME
       cat - concatenate files and print on the standard output

SYNOPSIS
       cat [OPTION] [FILE]...

DESCRIPTION
       Concatenate FILE(s), or standard input, to standard output.

论坛徽章:
0
3 [报告]
发表于 2006-01-02 13:13 |只看该作者
方法2应该好点吧?比较实用,如果你的系统不是特别差劲,应该不用管那么多效率问题吧
方法1如果/tmp过小也许会丢失部分文件(猜测)

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2006-01-02 13:20 |只看该作者
原帖由 大蚂蚁 于 2006-1-2 13:13 发表
方法2应该好点吧?比较实用,如果你的系统不是特别差劲,应该不用管那么多效率问题吧
方法1如果/tmp过小也许会丢失部分文件(猜测)

cat就是cat,没必要把问题复杂化
我记得小骆驼书里有段讲了for和while的区别,从效率上上说,for不如while
BTW:小骆驼书 I/O基础 第111页有讲

[ 本帖最后由 寂寞烈火 于 2006-1-2 13:33 编辑 ]

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
5 [报告]
发表于 2006-01-02 13:24 |只看该作者
data?
才能匹配多少个文件啊,还for个P啊
还比较个P啊?

论坛徽章:
0
6 [报告]
发表于 2006-01-03 03:03 |只看该作者

谢谢回复。

谢谢回复。

不过好像还是没有答案。

BTW。 data? 只是一个例子, data*更好了

有时候数据很大, 我认为还是有必要考虑一下效率问题的。

thank you guys, anyway.

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2006-01-03 08:18 |只看该作者
在循环中 all.dat在每次循环时都被打开/关闭一次,你说哪个效率高?当然文件名过多造成命令出错是另一码事
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP