考虑以下字符串:
$ columnA="A1\nA2\nA3"
$ columnB="B1\nB2\nB3"
$ columnC="C1\nC2\nC3"
Run Code Online (Sandbox Code Playgroud)
使用 Bash,我如何合并这些以便获得另一个包含以下内容的字符串:
$ echo "$table"
A1;B1;C1\nA2;B2;C2\nA3;B3;C3
Run Code Online (Sandbox Code Playgroud)
您可以使用 commandpaste
和 process-substitution:
table="$(paste -d ';' <(echo -e "$columnA") <(echo -e "$columnB") <(echo -e "$columnC"))"
Run Code Online (Sandbox Code Playgroud)
echo "$table"
将输出为:
A1;B1;C1
A2;B2;C2
A3;B3;C3
Run Code Online (Sandbox Code Playgroud)
也不要忘记使用-e
flag with echo
,否则它不会考虑\n
,尤其是你会得到输出:
A1\nA2\nA3;B1\nB2\nB3;C1\nC2\nC3
Run Code Online (Sandbox Code Playgroud)
或者,使用 printf:
table="$(paste -d ';' <(printf "$columnA") <(printf "$columnB") <(printf "$columnC"))"
Run Code Online (Sandbox Code Playgroud)