awk 保存 csv 中的更改

awk to save changes in csv

我写了下面的代码:

BEGIN{FS=OFS=","}
     NR==FNR && 
     {sum+=; 
     elementos++; 
     next}
     !{=media}
     {print}
     ENDFILE{media=sum/elementos}

awk 脚本将平均年龄添加到列 'age' 的空单元格中。

代码的执行如下:

awk -f c_awk.awk train3.csv

现在我正在尝试使用 awk 将所做的更改保存在新的 CSV 文件中。 (新文件:train4.csv)

我一直在尝试 > ./c_awk.awk/train4.csv 在最后一行,但它不起作用。

awk: c_awk.awk:12:      ENDFILE{media=sum/elementos}> /tmp/train4.csv
awk: c_awk.awk:12:                                  ^ syntax error
awk: c_awk.awk:12:      ENDFILE{media=sum/elementos}> /tmp/train4.csv
awk: c_awk.awk:12:                                               ^ syntax error

我尝试实施更改的文件如下所示:

PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S

预期结果如下:

1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs Thayer)",female,38,1,0,PC 17599,71.2833,C85,C
3,1,3,"Heikkinen, Miss. Laina",female,26,0,0,STON/O2. 3101282,7.925,,S
4,1,1,"Futrelle, Mrs. Jacques Heath (Lily May Peel)",female,35,1,0,113803,53.1,C123,S
5,0,3,"Allen, Mr. William Henry",male,35,0,0,373450,8.05,,S
6,0,3,"Moran, Mr. James",male,,0,0,330877,8.4583,,Q
7,0,1,"McCarthy, Mr. Timothy J",male,54,0,0,17463,51.8625,E46,S

谢谢。

awk -f c_awk.awk train3.csv > /tmp/train4.csv

或者只是将 {print} 更改为 {print > "/tmp/train4.csv"}

你的脚本包含几个与写入新文件无关的问题,我怀疑你不知道 - 你应该 post 一个新问题,包含简洁、可测试的示例输入和预期输出,以便我们提供帮助你有那个,因为它不完全清楚你想要那个脚本做什么