在Linux中,paste
命令用于合并一个或多个文件的内容,将每个文件的行按列对齐并用分隔符(通常是制表符)连接起来。当你有两份或多份数据文件,希望以垂直方向合并时,这个命令非常有用。
基本语法:
paste [选项] 文件1 文件2 ...
功能和选项:
- 默认情况下,
paste
会把每行从各个文件中对应位置的数据粘贴在一起,并用制表符分隔。 -d, --delimiters=LIST
:指定自定义分隔符,而不是默认的制表符。例如:paste -d ',' file1.txt file2.txt
这将会使用逗号作为分隔符合并文件。
-s, --serial
:逐行而不是逐列处理文件,即一次只合并一行而不是所有文件的当前行。可以通过重定向或者使用
-
来从标准输入读取数据。
示例:
假设我们有两个文本文件:
file1.txt:
apple
banana
cherry
file2.txt:
1
2
3
执行以下命令:
paste file1.txt file2.txt
输出将是:
apple 1
banana 2
cherry 3
更复杂的例子,如果你有一个列表,并希望每一行内容前后加上括号:
echo '(' | paste -sd ' ' - file1.txt | paste -sd ')' -
这将在file1.txt
的每一行前面添加左括号,在后面添加右括号,并且内部元素之间用空格分隔。
请注意,paste
命令假定所有输入文件具有相同的行数,如果行数不匹配,则较短文件后面的行将不会出现在结果中。