文字列を列に結合してbashでテーブルを作成する

文字列を列に結合してbashでテーブルを作成する

次の文字列を考えてみましょう。

$ columnA="A1\nA2\nA3"
$ columnB="B1\nB2\nB3"
$ columnC="C1\nC2\nC3"

Bashを使用してこれらを含む他の文字列を取得するようにこれらをマージするにはどうすればよいですか?

$ echo "$table"
A1;B1;C1\nA2;B2;C2\nA3;B3;C3

ベストアンサー1

pasteコマンドとプロセスの置き換えを使用できます。

table="$(paste -d ';' <(echo -e "$columnA") <(echo -e "$columnB") <(echo -e "$columnC"))"

echo "$table"出力は次のとおりです。

A1;B1;C1
A2;B2;C2
A3;B3;C3

-eまた、フラグを一緒に使用することを忘れないでくださいecho。それ以外の場合は考慮されず、\n特に次のような出力が得られます。

A1\nA2\nA3;B1\nB2\nB3;C1\nC2\nC3

またはprintfを使用してください。

table="$(paste -d ';' <(printf "$columnA") <(printf "$columnB") <(printf "$columnC"))"

おすすめ記事