> 文本处理与搜索 > paste

paste: 将文件的行合并为列(串行处理)

`paste` 命令用于将多个文件的对应行合并后输出到标准输出,或将单个文件的行串行处理并转换为列。特别是 `-s` (serial) 选项,在读取单个输入文件的每一行并将其排列为输出行中的多个列时非常有用。

概述

`paste` 命令默认将多个文件的相同行号的内容合并并以列的形式输出。`-s` 选项会改变此行为,它逐行读取单个文件的内容,并将其组合成一个包含多个列的输出行。这在重构数据为横向格式时非常有用。

主要功能

  • 合并多个文件的行
  • 将单个文件的行串行转换为列(-s)
  • 可指定分隔符

主要选项

操作和分隔符

生成的命令:

请尝试组合命令。

描述:

`paste` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

将单个文件的行转换为列(默认制表符分隔)

echo -e "apple\nbanana\norange\ngrape" > fruits.txt
paste -s fruits.txt
rm fruits.txt

逐行读取文件的内容,并将其作为由制表符分隔的列输出到一行。

使用逗号(,)分隔将行转换为列

echo -e "apple\nbanana\norange\ngrape" > fruits.txt
paste -s -d ',' fruits.txt
rm fruits.txt

使用 `-d` 选项将输出列之间的分隔符指定为逗号。

循环使用多个分隔符

echo -e "1\n2\n3\n4\n5\n6" > numbers.txt
paste -s -d '+-' numbers.txt
rm numbers.txt

在 `-d` 选项中指定多个分隔符时,每个列将循环使用不同的分隔符。

从标准输入进行串行处理

seq 1 5 | paste -s -d ' '

通过管道传递的标准输入使用 `-s` 选项进行串行处理。

提示与注意事项

了解有效使用 `paste -s` 选项的技巧和注意事项。

主要应用场景

在重构数据为横向格式或将多行数据汇总为一行时,`-s` 选项非常有用。特别是当与其他命令的输出通过管道(|)连接以将数据转换为所需格式时,它能发挥强大的功能。

  • 重构数据为横向格式时(例如:将 `ls` 的结果显示为一行)
  • 将多行数据汇总为一行时
  • 与其他命令通过管道(|)连接以灵活使用

使用分隔符(`-d`)时的注意事项

如果 `-d` 选项指定的分隔符列表较短,列表中的字符将循环使用。例如,`-d ','` 会用逗号分隔所有列,而 `-d ', '` 会用逗号分隔第一列,用空格分隔第二列,然后再次循环到逗号。


相同类别命令