上一篇整理了cat指令的几个基本常见用法,这次整理一下paste指令的基本用法。
- cat
- paste
- cut
- grep
paste
paste可以简单的理解为把两个文件的内容按列合并,与cat命令直接将不同文件按照先后顺序接起来不同,paste可以非常快速的将两个文件中的内容按照文件顺序从左往右排起来,例如文件1的内容是:
a
b
c
d
文件2的内容是:
1
2
3
4
则paste之后的结果为:
a 1
b 2
c 3
d 4
甚至可以在拼接时向中间插入间隔符号,下面列举一下常见的用法。
- 直接拼接
paste file1 file2 > result
上述指令将file1和file2中的内容按照列拼接之后,存入result文件中,如果不加 > result,则直接显示在终端
- 拼接时使用指定符号隔开各个文件的内容
paste -d':' file1 file2
结果类似
a:1
b:2
c:3
d:4
-d之后使用双引号和单引号甚至不用引号的结果一样,而且只能指定一个字符,你写一大串-d"::::----"仍然只有第一个字符会被取为分隔符
- 删除所有换行
paste file1 -s
该指令会将所有换行删掉,也就是将file1的所有行拼成一整行。
也可以是两个文件
paste file1 file2 -s
执行的结果是两个文件的内容分别被存成一行,然后按照文件顺序输出,最终结果是两行,每行对应一个文件
也可以与-d组合使用,相当于将原文件内容的换行符替换为指定分隔符
paste file1 -s -d:
结果类似:
a:b:c:d
- 指定从标准输入中读取的次数
这是个为觉得比较特殊的用法,主要是与其他指令组合使用,第一次见到是在http://blog.csdn.net/andy572633/article/details/7214126的文章中,他给出的用法如下:
ls /etc | paste -d" " - - - - - -
先使用ls命令输出/etc目录,然后管道传给paste命令,输出结果会变成6列;注意双引号中间是空格,表示后面的-号用空格隔开
我自己试了一下于cat组合,结果类似
cat file1 | paste -d" " - -
a b
c d
参考资料:
http://blog.csdn.net/andy572633/article/details/7214126