快速业务通道

paste命令,合并多个文件的“同行数据”

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-18
【小蜗牛有心之作】 好不容易将所有用户名一个一行列在文件usernames.txt,如下:
[root@pps ~]# cat usernames.txt
小蜗牛
小乌龟
小兔子
不过它们的邮件地址却在另外一个文件useremails.txt,如下:
[root@pps ~]# cat useremails.txt
snail@hoho.com
tortoise@hoho.com
rabbit@hoho.com
另外,它们各自的职业在文件userjobs.txt,如下:
[root@pps ~]# cat userjobs.txt
门卫
骑士
小偷
好,我现在有需要将它们的数据合并起来,想在文件userinfo.txt里实现如下结果:
小蜗牛 snail@hoho.com 门卫
小乌龟
tortoise@hoho.com 骑士
小兔子
rabbit@hoho.com 小偷 如果不认识paste命令,那么可能得走好多好多弯路,并且组合命令可能超级复杂,如果知道paste命令的话,比吃生菜还简单:
[root@pps ~]# paste usernames.txt useremails.txt userjobs.txt
小蜗牛 snail@hoho.com 门卫
小乌龟
tortoise@hoho.com 骑士
小兔子
rabbit@hoho.com 小偷 (当然,这里只有很少数据,可以手工实现,如果遇到成千上万行数据就知道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,看示例: [root@pps ~]# paste -s usernames.txt useremails.txt userjobs.txt
小蜗牛 小乌龟 小兔子
snail@hoho.com tortoise@hoho.com rabbit@hoho.com
门卫 骑士 小偷 哈哈,由默认的“并行输出”改为“串行输出”了,或者说由“并排”变为“横排”了! 其实-s参数就是输出一行一个文件,有多少个文件就有多少行.原始每个文件里的每行内容都成为输出结果一行里的各个字段. ------------------------------------------------------------------------------------------ 赵小蜗牛 QQ: 755721501 E-mail: snailwarrior@qq.com 在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号