You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中将带换行的两个字符串按列格式打印为表格?

在Bash中按列对齐打印字符串的方法

你可以用paste配合column命令来实现需求,这是最直接的方案:

paste <(echo "$string1") <(echo "$string2") | column -t -s $'\t'

命令解释:

  • <(echo "$string1") 和 <(echo "$string2") 是Bash的进程替换,把两个字符串的换行内容分别作为临时输入源传给paste。
  • paste 会将两个输入的对应行用制表符拼接(比如第一行是HEADER1\tHEADER2)。
  • column -t -s $'\t' 以制表符为分隔符,自动对齐所有列,输出整齐的表格格式。

另外也可以用awk实现,逻辑更灵活:

awk 'NR==FNR {lines[NR]=$0; next} {print lines[FNR], $0}' <(echo "$string1") <(echo "$string2") | column -t

为什么你的echo命令不行?

echo "$string1 $string2" 会先输出string1的所有行,再输出string2的内容,相当于把两个字符串的内容按顺序拼接,自然无法对应行对齐。

内容的提问来源于stack exchange,提问作者Sasha Milic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 17:27:37