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

时间:2020-03-05 15:29:08  来源:igfitidea点击:

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

在本教程中,我们将说明如何使用“粘贴”命令。

如何使用“粘贴”命令

“粘贴”是鲜为人知的Linux和Unix命令行实用工具之一。

“粘贴”命令的常规语法如下:

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

如果未提供任何输入文件,或者将'-'用作参数,则'paste'将使用标准输入。

假设我们有以下文件:

文件1

Iron Man
Thor
Captain America
Hulk
Spider Man

文件2

Black Widow
Captain Marvel
Dark Phoenix
Nebula

在不带选项的情况下调用时,“粘贴”将读取作为参数给出的所有文件,并水平合并文件的相应行,并以空格分隔:

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'分隔符。

每个定界符被连续使用。
当列表用尽时,“粘贴”将从第一个定界符字符再次开始。

要将“ _”(下划线)字符用作分隔符而不是“ 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

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

如果提供了更多文件,则“粘贴”将从列表的开头再次开始。

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”,“-零终止”方法一起使用时,“粘贴”使用空字符来分隔项目,而不是默认的换行符。
当将'paste'与'find -print0'和'xargs -0'命令结合使用以处理包含特殊字符的文件名时,此行为很方便。