【发布时间】:2017-07-09 00:18:25
【问题描述】:
我正在尝试使用以下循环处理许多 .csv 文件:
for i in *.csv
do
dos2unix $i
awk '{print $0, FILENAME}' $i>new_edit.csv
done
此脚本应将文件名附加到每个文件的末尾,并且它可以工作。但是,查看输出 new_edit.csv 仅包含来自输入的 .csv 文件之一的数据。
wc -l new_edit.csv
表示我的 awk 只处理我的一个 csv 文件中的行。如何让我的 awk 处理每个文件?
【问题讨论】:
-
查看 new_edit.csv 中的输出,我怀疑它被覆盖而不是附加到文件中,因为它只是似乎在其中的最后一个文件,但我不确定....
-
没错。应该是
... $i >> new_edit.csv。 -
@JamesBrown 您的评论解决了我的问题。您可以将其发布为答案以便我接受吗?
-
我明白了,它消除了对 for 循环的需要。
-
你也可以简单地设置RS,然后也不需要子命令