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

来源:互联网 发布:php判断语句怎么写 编辑:程序博客网 时间:2024/05/23 23:30
paste命令,合并多个文件的“同行数据”

【小蜗牛有心之作
 
好不容易将所有用户名一个一行列在文件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参数就是输出一行一个文件,有多少个文件就有多少行。原始每个文件里的每行内容都成为输出结果一行里的各个字段。
阅读(311) | 评论(0) | 转发(0) |
0

上一篇:批量建立域帳號(csvde+dsmod)

下一篇:ORACLE实例--实例启动和关闭

相关热门文章
  • 指针
  • 使用CrossOver模拟office
  • VMWare克隆或复制Linux虚拟机...
  • Python日志输出——logging模...
  • www.ub8.cm 彩票走势图-百度文...
  • linux 常见服务端口
  • 什么是shell
  • linux socket的bug??
  • 【ROOTFS搭建】busybox的httpd...
  • linux的线程是否受到了保护?...
  • 文件去重,如何解决Hash冲突的...
  • 配置CI框架的rewrite 老是出...
  • CentOS下,PHP如何实现SSH2扩...
  • 做数据统计有没有比较好的PHP...
  • C++ 拷贝一个对象是什么意思...
给主人留下些什么吧!~~
原创粉丝点击