假设我有一个输入字符串:
,,a,b,c,,,,d,e,f,,,g
是否有一个简单的 sed 命令可以在每对连续的逗号之间插入一些内容?也就是说,我可以使用什么将输入字符串转换为:
0,0,a,b,c,0,0,0,d,e,f,0,0,g
答案1
您需要使用 sed 循环:
sed 's/^,/0,/; :a; s/,,/,0,/g; ta'
记录在这里:https://www.gnu.org/software/sed/manual/sed.html#Programming-Commands
但我会使用 perl 或 awk
perl -pe 's/(?:^|,)\K(?=,|$)/0/g'
awk -F, -v OFS=, '{for (i=1; i<=NF; i++) if ($i == "") $i=0};1'