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 一个新问题,包含简洁、可测试的示例输入和预期输出,以便我们提供帮助你有那个,因为它不完全清楚你想要那个脚本做什么
我写了下面的代码:
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 一个新问题,包含简洁、可测试的示例输入和预期输出,以便我们提供帮助你有那个,因为它不完全清楚你想要那个脚本做什么