Bash cut的替换--输出分隔符

Bash cut的替换--输出分隔符,bash,awk,solaris,cut,sed,Bash,Awk,Solaris,Cut,Sed,我创建了一个使用 cut -d',' -f- --output-delimiter=$'\n' 为RHEL 5中的每个命令分隔值添加换行符,例如 [root]# var="hi,hello how,are you,doing" [root]# echo $var hi,hello how,are you,doing [root]# echo $var|cut -d',' -f- --output-delimiter=$'\n' hi hello how are you doing 但不幸的是

我创建了一个使用

cut -d',' -f- --output-delimiter=$'\n'
为RHEL 5中的每个命令分隔值添加换行符,例如

[root]# var="hi,hello how,are you,doing"
[root]# echo $var
hi,hello how,are you,doing
[root]# echo $var|cut -d',' -f- --output-delimiter=$'\n'
hi
hello how
are you
doing
但不幸的是,当我在Solaris 10中运行相同的命令时,它根本不起作用:(

我检查了手册页上的'cut',可惜里面没有'--output delimiter'

那么我如何在Solaris 10(bash)中实现这一点呢?我想awk将是一个解决方案,但我无法正确地构建选项


注意:逗号分隔的变量中可能有“”空格。

如何使用
tr

$ tr ',' '\n' <<< "$var"
hi
hello how
are you
doing
与:

$sed's/,/\n/g'也许是自己做的


不知何故,我感觉自己像个大飞象!!!我从来没有想过使用“tr”或“sed”…pfffttt…非常感谢你的回答!sed“不起作用,bash-3.00”#echo$var | sed-e's/,/\n/g”hinhello hownare Youndoding,但“tr”起作用了!嗯,我没有Solaris服务器要测试,但也许你可以从中找到一些线索。很好阅读
tr
e为你:)谢谢你的回答,但我更喜欢较小的,我也不想使用数组。如果你想要与RHEL上相同的cut命令,请安装该软件包。
$ tr ',' '\n' <<< "$var"
hi
hello how
are you
doing
$ echo $var | tr ',' '\n'
hi
hello how
are you
doing
$ sed 's/,/\n/g' <<< "$var"
hi
hello how
are you
doing
$ awk '1' RS=, <<< "$var"
hi
hello how
are you
doing
var="hi,hello how,are you,doing"
printf "$var" | (IFS=, read -r -a arr; printf "%s\n" "${arr[@]}")
hi
hello how
are you
doing