从时间序列中删除特定的月 - 日(确切地说,即:02-29)

时间:2015-03-04 01:15:14

标签: python shell datetime pandas awk

我想使用awk(虽然打开python / pandas解决方案)来拉动除了特定日期之外的所有内容,形成时间序列数据集。特定的日子有时只在整个文件中发生,因为它是一个生日,只有在一年的时间内有记录才会出现。

数据集看起来像这样,作为一个实际发生日期实例的例子:

02-28   HammondBay  139 279 30  49.23281860 -123.96769714   4   5150    69.9
02-29   HammondBay  139 279 30  49.23281860 -123.96769714   1   1437    50.9
03-01   HammondBay  139 279 30  49.23281860 -123.96769714   4   5754    59.0
03-02   HammondBay  139 279 30  49.23281860 -123.96769714   4   5732    54.8
03-03   HammondBay  139 279 30  49.23281860 -123.96769714   4   5724    128.5

所以预期的结果,只是要清楚的是一个文件,其中每个02-29实例都从这个制表符分隔的时间序列数据集中删除。

3 个答案:

答案 0 :(得分:1)

我在this site

处发现了一些删除(或剥离)方法

使用awk解决上述问题的方法是:

awk '!/02-29/' file > temp && mv temp.whatever file

答案 1 :(得分:1)

awk '!/02-29/' your_file.txt | tee new_file.txt

grep

怎么样?
grep -Ev '02-29' your_file.txt > new_file.txt

答案 2 :(得分:1)

要删除所有以02-29前缀 inplace 开头的行,您可以使用sed -i

$ sed -i '/^02-29/d' input.txt 

或使用grep + sponge

$ grep -v '^02-29' input.txt | sponge input.txt

其中来自sponge的{​​{1}}实用程序允许覆盖管道中使用的文件作为输入。