如何在linux中加入像表格格式这样的两个变量?

问题描述

如何将两个变量或多个变量(如表的列)连接起来?

我有var1var2

echo $var1

10
50
30
20
40

然后

echo $var2

111
222
333
444
555

然后我想要这样的输出

10   111
50   222
30   333
20   444
40   555

在我组合两个变量之后。

解决方法

使用 pastebash 的进程替换:

paste <(echo "$var1") <(echo "$var2")

输出:

10      111
50      222
30      333
20      444
40      555
,

使用 pr 工具,假设您的 shell 是 bash

printf "%s\n%s\n" "$var1" "$var2" | pr -2 -T -s$'\t'

pr -2T -s$'\t' <<END
$var1
$var2
END

或者,while-read 循环:

while IFS= read -r a <&3; IFS= read -r b <&4; do printf "%s\t%s\n" "$a" "$b"; done 3<<<"$var1" 4<<<"$var2"

或更漂亮的布局

while
    IFS= read -r a <&3
    IFS= read -r b <&4
do
    printf "%s\t%s\n" "$a" "$b"
done 3<<<"$var1" \
     4<<<"$var2"