paste(英文名称:paste)命令是 Linux / Unix / FreeBSD 系统中用于拼接多个文件中的内容行的工具,其主要作用是将多个文件的内容按照对应所在的行进行拼接,拼接的内容默认用制表符分隔开来。与 cat 命令把内容附加到内容的后面不同,paste 命令按照对应行,把相同位置的行的内容拼接在一起,形成一个新的行。

本文将为你从多个方面介绍 paste 命令的使用方法,使你对 paste 命令具有基本的了解。

paste 命令语法结构

如下给出 paste 命令的基本语法结构形式:

paste [选项]... 文件...

语法结构中各部分的解释说明:

  • [选项]:用于控制行拼接行为的参数
  • 文件:用于拼接内容行的文件,至少提供一个文件

paste 命令使用示例

如下的示例当中,如果没有使用示例特定的数据,就使用如下 names.txtemails.txtaddress.txt 的数据:

names.txt 文件的具体内容为:

张三
李四

emails.txt 文件的具体内容为:

zhang@example.com
li@example.com

address.txt 文件的具体内容为:

上海
北京

1. 简单合并拼接两个文件

使用默认配置合并拼接两个文件,默认分隔符为 Tab:

paste names.txt emails.txt

输出内容为:

张三  zhang@example.com
李四  li@example.com

2. 自定义合并后内容的分隔符

使用 -d 选项,指定合并拼接内容行时的分隔符:

paste -d ',' names.txt emails.txt

输出内容为:

张三,zhang@example.com
李四,li@example.com

3. 合并拼接三个文件

指定三个文件即可合并三个文件的内容行:

paste names.txt emails.txt address.txt

输出内容为:

张三  zhang@example.com   上海
李四  li@example.com  北京

4. 行列变换

使用 -s 选项,会把每个文件中的所有行拼接成为一行内容,即:行列变换:

paste -s names.txt emails.txt

输出内容为:

张三  李四
zhang@example.com   li@example.com

paste 命令选项详解

如下给出 paste 命令选项的详细解释说明:

选项 说明 典型用例
-d DELIMITERS 用于指定合并拼接时使用的分隔符 -d ';'-d ":\t"
-s 把相应文件中的行合并为一行,即:行列变换 paste -s file.txt
-z 使用 NUL 字符作为合并行的分隔符 主要用韵处理含有换行符的数据内容
--help 显示帮助信息
--version 显示版本信息

结语

paste 主要的功能在于合并拼接文件中的内容行。在本文中我们全面的介绍了 paste 的语法结构及其功能,并给出了 paste 命令的具体使用示例,相信你能够正确使用 paste 合并拼接文件的内容行,也可使用该工具实现行列变换。

paste 命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。