【发布时间】:2022-01-22 21:15:16
【问题描述】:
我写了以下代码:
BEGIN{FS=OFS=","}
NR==FNR &&
$7{sum+=$7;
elementos++;
next}
!$7{$7=media}
{print}
ENDFILE{media=sum/elementos}
此awk 脚本将平均年龄添加到“年龄”列的空单元格中。
代码执行如下:
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 脚本的输出重定向到文件,我们向您展示了如何做到这一点。如果您的 awk 脚本没有产生您想要的输出,并且您还需要帮助让您的 awk 脚本产生该输出,然后提出一个新问题 - 一次只问一个问题,以便将来有类似问题的其他人可以搜索档案找到答案。见How to Ask。