「paste(1)」-

合并多个文件中的行

命令语法格式

paste [OPTION]… [FILE]…

命令描述

paste向标准输出中写入行,每一输出的行依次对应每个给定文件的行,由TAB字符分隔。如果没有指定FILE或者FILE为’-‘,则从标准输入中读取文件内容。

如果你不理解这个命令的用法,可以先查看「使用示例」部分。

命令支持的选项及含义

需要提供给长选项的参数也需要提供给对应的短选项。

-d, –delimiters=LIST
连续使用LIST中的字符,而不是TAB,来分隔要被合并的行。当LIST中的字符耗尽时,则再次从LIST的第一个字符重新开始。

-s, –serial
一次粘贴一个文件的行,而不是每个文件的一行。

-z, –zero-terminated
使用零字节(ASCII NUL)而不是换行符(ASCII LF)来分隔每个项。即,将输入视为由ASCII NUL分隔的项目,并用ASCII NUL终止输出项目。

这个选项可以和’perl -0’或者’find -print0’和’xargs -0’等等命令结合使用,它们可以可靠地处理任意文件名,甚至包含空格或其他特殊字符。

–help
显示帮助信息并退出。

–version
显示版本信息。

使用示例

下面的这个示例会解释paste命令的作用。我们有如下文件:

# cat num2

1

2

# cat let3

a

b

c

在执行paste num2 let3 num2后,输出如下:

1	a	1
2	b	2
 c

从混合标准输入与输入行,执行paste – let3 – < num2命令,输出如下:

1	a	2
 b
 c

连续添加一个空格:

# seq 4 | paste -d ‘ ‘ – –

1 2

3 4

选项-s的使用示例:

# paste -s num2 let3

1 2

a b c

选项-d的使用示例:

# paste -d ‘%_’ num2 let3 num2

1%a_1

2%b_2

%c_

输出如上所示。

相关手册

查看在线手册:http://www.gnu.org/software/coreutils/paste

查看info手册:info ‘(coreutils) paste invocation’

参考文献

  • man 1 paste, version GNU coreutils 8.28

更新日志

  • 06/23/2018 创建文章