将字符串拆分为数组并使用命令行在新行上打印每个元素

dan*_*996 4 command-line sed awk split

我有一个用逗号分隔的字符串,就像a,b,c,d,e,f我想分成一个以逗号作为分隔符的数组。然后我想在新行上打印每个元素。我遇到的问题是,到目前为止我所知道的所有 cli 工具(sed、awk、grep)只能在行上工作,但是如何将字符串转换为这些工具可以使用的格式。到目前为止我尝试过的是

echo "a,b,c,d,e,f" | awk -F', ' '{print $i"\n"}'
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个输出

a
b
c
d
e
f
Run Code Online (Sandbox Code Playgroud)

从这个输入

a,b,c,d,e,f
Run Code Online (Sandbox Code Playgroud)

tin*_*ink 6

坚持使用 awk ...只需确保您了解字段记录分隔符之间的区别:}

echo "a,b,c,d,e,f" | awk 'BEGIN{RS=","}{$1=$1}1'
Run Code Online (Sandbox Code Playgroud)

但评论中的 tr 解决方案更可取。

  • `awk '{$1=$1}1' RS=,` 看起来更短,删除了尾随的 `\n`ewline (2认同)