我有兩個變量,多行。如何在bash中結合兩個可變的逐列
VAR1="1
2
3
4"
VAR2="ao
ad
af
ae"
我想
VAR3="1ao
2ad
3af
4ae"
我知道我可以做到這一點:
echo "$VAR1" > /tmp/order
echo "$VAR2" | paste /tmp/order -
但是有什麼辦法沒有一個臨時文件?
我有兩個變量,多行。如何在bash中結合兩個可變的逐列
VAR1="1
2
3
4"
VAR2="ao
ad
af
ae"
我想
VAR3="1ao
2ad
3af
4ae"
我知道我可以做到這一點:
echo "$VAR1" > /tmp/order
echo "$VAR2" | paste /tmp/order -
但是有什麼辦法沒有一個臨時文件?
paste <(echo "$VAR1") <(echo "$VAR2") --delimiters ''
你可以說:
$ 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
有兩個相同的答案有什麼意義? –
有什麼<()操作符叫什麼名字? –
@KurtisNusbaum「<()」被稱爲「進程替換」。並非所有的炮彈都支持它,但是最流行的炮彈可以做到:https://www.google.com/search?q=process+substitution –