将零添加到列表中

ser*_*gio 2 regex perl awk

我有以下输入文件:

a,10,12,13
b,20,22
c,30
d,33
Run Code Online (Sandbox Code Playgroud)

并且想要添加零,直到每行有三个数字,所以这应该是输出:

a,10,12,13
b,20,22,0
c,30,0,0
d,33,0,0
Run Code Online (Sandbox Code Playgroud)

sed我可以使用这两个命令:

sed 's/\([a-z],[0-9]\+$\)/\1,0,0/g'
sed 's/\([a-z],[0-9]\+,[0-9]\+$\)/\1,0/g'
Run Code Online (Sandbox Code Playgroud)

我的正则表达式知识是有限的sed,我想知道如何用awk或实现这一点perl.

Bor*_*din 5

作为Perl单线

perl -pe 's/$/,0/ until tr/,// >= 3' myfile
Run Code Online (Sandbox Code Playgroud)

产量

a,10,12,13
b,20,22,0
c,30,0,0
d,33,0,0
Run Code Online (Sandbox Code Playgroud)