上一篇整理了cat指令的几个基本常见用法,这次整理一下paste指令的基本用法。

  1. cat
  2. paste
  3. cut
  4. 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

04-30 07:58