使用 awk 修改带条件的字段

使用 awk 修改带条件的字段

输入

New,9,1
Old,11,0

输出

New,09,1
Old,11,0

我想在第一个之后附加到提交的数字 2,,以防它是个位数,所以我想0在数字之前添加,如输出所示。

我能够使用它来实现这一点awk,但我失去了,作为分隔符的能力。

使用以下命令

awk -F ',' '{if(length($2)==1)$2="0"$2;print $0}' inputfile

答案1

awk -F ',' 'BEGIN { OFS=","};{if(length($2)==1)$2="0"$2;print $0}'

答案2

有了GNU sed它,就可以像这样:

   sed -Ee    's/,([0-9]),/,0\1,/'   input 

答案3

我使用下面的 awk 方法来实现相同的效果

_linux_example ~]#awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' file.txt

输出:

 awk -F "," '{if(length($2)<=1)print $1",0"$2","$3;else print $0}' filename

New,09,1
Old,11,0

相关内容