从分隔符剥离输出并全部放在新行上



我有这样的数据(自然我有GB的数据)

[[1,2,3],[4,5,6],[5,6,7],[8,9,10]]

并且它全部输出在一个文件中。

我想知道是否可以使用正则表达式、awksedgrep 或纯 bash 来管道输出,以便我让它看起来像这样

1,2,3
4,5,6
5,6,7
8,9,10

使用 sed:

echo '[[1,2,3],[4,5,6],[5,6,7],[8,9,10]]' | sed 's/],[/n/g;s/[|]//g'

这包括两个命令

s/],[/n/g   # replace all instances of ],[ with newlines
s/[|]//g    # remove remaining [ and ] (at the beginning and end)

你可以使用 awk

echo "[[1,2,3],[4,5,6],[5,6,7],[8,9,10]]"|awk  -v OFS="n" '{gsub(/(],[|]]|[[)/," ");for(i=1;i<=NF;++i){print $i}}'

结果

1,2,3
4,5,6
5,6,7
8,9,10

最新更新