如何在 sh 中并排列中打​​印多行变量?

Wol*_*olf 6 shell bash text-processing columns paste

这个问题基于Ask\xe2\x80\xafUbuntu 上的 \xc2\xa0similar 问题,\n但不是bash,我\xc2\xa0 希望在 中获得类似的输出sh

\n

bash 中没有问题;它按预期工作。

\n
wolf@linux:~$ echo $SHELL\n/usr/bin/bash\nwolf@linux:~$ \nwolf@linux:~$ varA=\'Aug 01\n> Aug 16\n> Aug 26\'\nwolf@linux:~$ \nwolf@linux:~$ varB=\'04:25\n> 03:39\n> 10:06\'\nwolf@linux:~$ \nwolf@linux:~$ echo "$varA $varB"\nAug 01\nAug 16\nAug 26 04:25\n03:39\n10:06\nwolf@linux:~$\nwolf@linux:~$ paste <(printf %s "$varA") <(printf %s "$varB")\nAug 01  04:25\nAug 16  03:39\nAug 26  10:06\nwolf@linux:~$\n
Run Code Online (Sandbox Code Playgroud)\n

但是,当我在 中尝试类似的命令时sh,我收到以下错误。

\n
wolf@linux:~$ sh\n$ \n$ varA=\'Aug 01\n> Aug 16\n> Aug 26\'\n\n$ varB=\'04:25\n> 03:39\n> 10:06\'\n$ \n$ echo "$varA $varB"\nAug 01\nAug 16\nAug 26 04:25\n03:39\n10:06\n$ \n$ paste <(printf %s "$varA") <(printf %s "$varB")\nsh: 22: Syntax error: "(" unexpected\n$ \n
Run Code Online (Sandbox Code Playgroud)\n

是否有可能获得类似的输出sh

\n

ste*_*ver 6

如果您的变量具有相同的行数,那么您可以使用该pr命令将标准输出打印到两列中,例如:

$ printf '%s\n' "$varA" "$varB" | pr -2 -Ts^I       
Aug 01  04:25
Aug 16  03:39
Aug 26  10:06
Run Code Online (Sandbox Code Playgroud)

其中^I代表制表符(与命令的默认分隔符一致paste),可以使用组合键Ctrl+引入V TAB,同时-T关闭页眉和页脚。