【发布时间】:2015-08-20 13:14:36
【问题描述】:
我正在尝试浏览一组文件。在 2 年内每个月有 4-5 个文件,其中包含 1000 多个站点。我正在尝试将它们分开,以便每个 station_no (station_no = $1) 有一个文件。
我认为这很容易,并且很简单;
awk -F, '{ print > $1".txt" }' *.csv
我已经用一个文件进行了测试,它工作正常。但是,当我运行它时,它会创建 .txt 文件,但文件中没有任何内容。
我现在试着把它放在一个循环中,看看它是否有效;
#!/bin/bash
#program to extract stations from orig files
for file in $(ls *.csv)
do
awk -F, '{print > $1".txt" }' $file
done
它在循环文件等时工作,但它会在移动到下个月时不断覆盖。
如何阻止它覆盖并仅添加到具有该名称的 .txt 的末尾?
【问题讨论】:
-
只需使用
>>追加而不是>,这会截断之前的内容。 -
天哪,我就知道会这么简单!非常感谢!我花了最后半个小时在谷歌上搜索为什么它不起作用:D
-
这是一个错字。谢谢:)
-
啊,谢谢,我确实尝试过这样做,但它说我可以“在 4 分钟内接受答案”,所以会等待然后打勾:)
-
for file in *.csv会比for file in $(ls *.csv)好很多...解析ls的输出通常被认为是相当不利的...