我有以下输入文件:
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.
作为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)