Linux中的粘贴命令(合并行)

paste 是允许您水平合并文件行的命令。 它输出由指定为参数的每个文件的顺序对应的行组成的行,并用制表符分隔。

在本教程中,我们将说明如何使用 paste 命令。

如何使用 paste 命令#

paste 是鲜为人知的Linux和Unix命令行实用工具之一。

的一般语法 paste 命令如下:

paste [OPTION].. [FILE]...

如果没有提供输入文件或何时 - 作为参数给出 paste 使用标准输入。

假设我们有以下文件:

文件1

Iron Man
Thor
Captain America
Hulk
Spider Man

文件2

Black Widow
Captain Marvel
Dark Phoenix
Nebula

不带选项调用时 paste 将读取作为参数给出的所有文件,并水平合并文件的相应行,并以空格分隔:

paste file1 file2
Iron Man	Black Widow
Thor	Captain Marvel
Captain America	Dark Phoenix
Hulk	Nebula
Spider Man

您可以使用以下命令将输出重定向到文件中,而不是在屏幕上显示输出: >>> 运营商:

paste file1 file2 > file3

如果文件不存在,将创建它。 的 > 操作员将覆盖现有文件,而 >> 运算符会将输出追加到文件中。

-d-delimiters 选项允许您指定用作分隔符的字符列表,而不是默认字符 TAB 分隔器。

每个定界符被连续使用。 清单用完后, paste 从第一个定界符开始。

要使用 _ (下划线)字符作为分隔符,而不是 TAB,您将输入:

paste -d '_' file1 file2
Iron Man_Black Widow
Thor_Captain Marvel
Captain America_Dark Phoenix
Hulk_Nebula
Spider Man_

这是使用两个定界符的示例:

paste -d '%|' file1 file2 file1

第一个文件和第二个文件中的行用分隔符列表中的第一个字符分隔。 第二和第三文件行用第二个定界符分隔。

如果提供了更多文件, paste 从列表的开头再次开始。

Iron Man%Black Widow|Iron Man
Thor%Captain Marvel|Thor
Captain America%Dark Phoenix|Captain America
Hulk%Nebula|Hulk
Spider Man%|Spider Man  

-s--serial 选项告诉 paste 一次显示一个文件的行,而不是每个文件的一行。

paste -s file1 file2

该命令将合并给定文件中的所有行,并在单独的行中合并:

Iron Man	Thor	Captain America	Hulk	Spider Man
Black Widow	Captain Marvel	Dark Phoenix	Nebula

当与 -z--zero-terminated 选项, paste 使用空字符来分隔项目,而不是默认的换行符。 这种行为在以下情况下很方便 paste 与结合使用 find -print0xargs -0 命令来处理包含特殊字符的文件名。

结论#

paste 命令用于合并给定文件的相应行。

如果您有任何疑问或反馈,请随时发表评论。

端子膏

Sidebar