文本操作2(paste,cat)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文本操作2(paste,cat)相关的知识,希望对你有一定的参考价值。
需求- 假如有两个文件name.txt和tel.txt,它们分别记录了员工的姓名和电话,如果需要把两个文件中的用户名和电话一一对应起来,怎么操作
解决方案
- 可以使用paste命令,它会把不同文件中的相同行连接起来
[[email protected] shellXT]# cat -n name.txt 1 曹操 2 刘备 3 孙权 4 周瑜 5 诸葛亮 6 司马懿 7 关羽 8 张飞 9 [[email protected] shellXT]# cat -n tel.txt 1 13088888888 2 13066666666 3 13044444444 4 13022222222 5 13011111111 6 13055555555 7 13033333333 8 13077777777 #使用冒号连接两个文件对应的行 [[email protected] shellXT]# paste -d ‘:‘ name.txt tel.txt |cat -n 1 曹操:13088888888 2 刘备:13066666666 3 孙权:13044444444 4 周瑜:13022222222 5 诸葛亮:13011111111 6 司马懿:13055555555 7 关羽:13033333333 8 张飞:13077777777 9 :
讨论
- paste命令正好与cut相反,可以把多个文件连接起来,-d参数指定分隔符,如果不指定默认TAB字符连接,如:
[[email protected] shellXT]# paste name.txt tel.txt |cat -n 1 曹操 13088888888 2 刘备 13066666666 3 孙权 13044444444 4 周瑜 13022222222 5 诸葛亮 13011111111 6 司马懿 13055555555 7 关羽 13033333333 8 张飞 13077777777 9
- paste命令还可以把文件的内容与标准输入中的数据连接起来,如下面的命令把name.txt和tel.txt连接以后的结果有何name.txt连接在一起
[[email protected] shellXT]# paste -d‘<‘ name.txt tel.txt |paste -d‘>‘ - name.txt |cat -n 1 曹操<13088888888>曹操 2 刘备<13066666666>刘备 3 孙权<13044444444>孙权 4 周瑜<13022222222>周瑜 5 诸葛亮<13011111111>诸葛亮 6 司马懿<13055555555>司马懿 7 关羽<13033333333>关羽 8 张飞<13077777777>张飞 9 <>
- 第二个paste命令的参数横杠-是用来表示从标准输入中读取数据,而此时的标准输入时从管道传递过来的上一个paste命令连接的结果,因此第二个paste命令会把上一次连接的结果与name.txt的内容进行再次连接。两次连接分别用字符<和>作为分隔符。
以上是关于文本操作2(paste,cat)的主要内容,如果未能解决你的问题,请参考以下文章