2013-08-26 13 views
8

私は2つの変数、複数行を持っています。2つの可変列を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 - 

しかし、一時ファイルを使用せずに行うにはどのような方法があるの?

答えて

17

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

+0

<()演算子は何と呼ばれていますか? –

+1

@KurtisNusbaum "<()"は "プロセス置換"と呼ばれます。すべてのシェルがサポートしているわけではありませんが、最も一般的なシェルは次のとおりです:https://www.google.com/search?q=process+substitution –

2

あなたが言うことができます。

$ 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 
+0

2つの同一回答を持つポイントは何ですか? –

関連する問題