免费注册 查看新帖 |

Chinaunix

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

paste命令,合并多个文件的“同行数据” [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-20 15:31 |只看该作者 |倒序浏览
[color="#000066"]paste命令,合并多个文件的“同行数据”
               
【小蜗牛有心之作



好不容易将所有用户名一个一行列在文件usernames.txt,如下:
[color="#ff1493"][root@pps ~]# cat usernames.txt
小蜗牛
小乌龟
小兔子

不过它们的邮件地址却在另外一个文件useremails.txt,如下:
[color="#ff1493"][root@pps ~]# cat useremails.txt
snail@hoho.com
tortoise@hoho.com
rabbit@hoho.com
另外,它们各自的职业在文件userjobs.txt,如下:
[color="#ff1493"][root@pps ~]# cat userjobs.txt
门卫
骑士
小偷

好,我现在有需要将它们的数据合并起来,想在文件userinfo.txt里实现如下结果:
[color="#8b0000"]小蜗牛  
snail@hoho.com
[color="#8b0000"]          门卫
小乌龟  
tortoise@hoho.com
[color="#8b0000"]       骑士
小兔子  
rabbit@hoho.com
[color="#8b0000"]         小偷

[color="#ff0000"]如果不认识paste命令,那么可能得走好多好多弯路,并且组合命令可能超级复杂,如果知道paste命令的话,比吃生菜还简单:
[root@pps ~]# paste usernames.txt useremails.txt userjobs.txt
[color="#ff1493"]小蜗牛  
snail@hoho.com
[color="#ff1493"]  门卫
小乌龟  
tortoise@hoho.com
[color="#ff1493"]       骑士
小兔子  
rabbit@hoho.com
[color="#ff1493"] 小偷

[color="#ff0000"](当然,这里只有很少数据,可以手工实现,如果遇到成千上万行数据就知道paste有用了)

要保存在文件userinfo.txt只需要用重定向">"就可以了。各个字段默认是用TAB分开的,可以使用参数-d来指定自己喜欢的分隔符,如下示例:
(1)用冒号分隔
[root@pps ~]# paste -d: file1 file2 ...
(2)用空格分隔
[root@pps ~]# paste -d' ' file1 file2 ...

如果在-d后面指定多个字符,只认第一个字符。如果想要用单引号(')和双引号(")等特殊字符做分隔符,需要转义一下:
[root@pps ~]# paste -d\' file1 file2 ...
[root@pps ~]# paste -d\" file1 file2 ...


paste还有一个有用的参数-s,看示例:
[color="#ff1493"][root@pps ~]# paste -s usernames.txt useremails.txt userjobs.txt
小蜗牛  小乌龟  小兔子
snail@hoho.com
[color="#ff1493"]  
tortoise@hoho.com
[color="#ff1493"]      
rabbit@hoho.com
[color="#ff1493"]门卫    骑士    小偷

哈哈,由默认的“并行输出”改为“串行输出”了,或者说由“并排”变为“横排”了!

其实-s参数就是输出一行一个文件,有多少个文件就有多少行。原始每个文件里的每行内容都成为输出结果一行里的各个字段。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/42905/showart_2154944.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP