文件中的列数为2时如何添加列

mik*_*ike 4 linux awk csv-simple

我正在尝试为awk我拥有的文件写作。数据集的例子是

S,CV0110,1235
S,1234
D,CQ120,3245
P,7894
Run Code Online (Sandbox Code Playgroud)

想要的结果如下(连续字段数为2时添加空字段)

S,CV0110,1235
S,,1234
D,CQ120,3245
P,,7894
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它正在为所有数据行而不是那些有 2 个字段的行添加值。

printf 'S,CV010,1235\r\n' | awk 'BEGIN{FS=OFS="fs"}{$n = $n OFS value}1'
Run Code Online (Sandbox Code Playgroud)

ste*_*ver 6

给定的

$ cat file
S,CV0110,1235
S,1234
D,CQ120,3245
P,7894
Run Code Online (Sandbox Code Playgroud)

然后

$ awk -F, 'BEGIN{OFS=FS} NF<3{$1 = $1 OFS} 1' file
S,CV0110,1235
S,,1234
D,CQ120,3245
P,,7894
Run Code Online (Sandbox Code Playgroud)