12

我有两个变量,多行。

VAR1="1
2
3
4"

VAR2="ao
ad
af
ae"

我想得到

VAR3="1ao
2ad
3af
4ae"

我知道我可以通过以下方式做到:

echo "$VAR1" > /tmp/order
echo "$VAR2" | paste /tmp/order  -

但是没有临时文件有什么办法吗?

4

2 回答 2

27

paste <(echo "$VAR1") <(echo "$VAR2") --delimiters ''

于 2013-08-26T05:31:48.453 回答
3

你可以说:

$ VAR3=$(paste <(echo "$VAR1") <(echo "$VAR2"))
$ echo "$VAR3"
1   ao
2   ad
3   af
4   ae

目前尚不清楚您是否想要结果数组中的空格。您的有效示例将包含上述情况中的空格。

如果您不想要空格,即1ao代替1 ao,那么您可以说:

$ VAR3=$(paste <(echo "$VAR1") <(echo "$VAR2") -d '')
$ echo "$VAR3"
1ao
2ad
3af
4ae
于 2013-08-26T05:32:54.987 回答