问题描述
如何将两个变量或多个变量(如表的列)连接起来?
我有var1
,var2
echo $var1
10
50
30
20
40
然后
echo $var2
111
222
333
444
555
然后我想要这样的输出
10 111
50 222
30 333
20 444
40 555
在我组合两个变量之后。
解决方法
使用 paste
和 bash
的进程替换:
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"