paste
是一个允许您水平合并文件行的命令。它输出由指定为参数的每个文件的顺序对应行组成的行,并用制表符分隔。
在本教程中,我们将解释如何使用paste
命令。
如何使用paste
命令#
paste
是鲜为人知且较少使用的 Linux 和 Unix 命令行实用程序之一。
的一般语法为paste
命令如下:
paste [OPTION].. [FILE]...
如果没有提供输入文件或者当-
作为参数给出,paste
使用标准输入。
假设我们有以下文件:
file1
Iron Man
Thor
Captain America
Hulk
Spider Man
file2
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
如果该文件不存在,则会创建该文件。这>
运算符将覆盖现有文件,而>>
运算符会将输出附加到文件中。
The -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
The -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
与以下组合使用查找-print0
and xargs -0用于处理包含特殊字符的文件名的命令。
结论#
The paste
命令用于合并给定文件的相应行。
如果您有任何问题或反馈,请随时发表评论。