如何根据时间戳从大文本文件中删除记录?

时间:2013-09-20 06:58:22

标签: linux bash unix sh ksh

我有一个巨大的文本文件(例如hugetextfile.txt),其中包含如下模式的文件名(日期格式为YYYYMMDDHH24MISS):

filename1-20130910120756.txt
filename2-20130910150156.txt
filename3-20130911190256.txt
filename4-20130912010756.txt
filename5-20130914020756.txt

如何删除hugetextfile.txt中比某个时间戳更新的文件名,例如20130912000000?

3 个答案:

答案 0 :(得分:2)

awk -F"-" '{t=20130910130000;split($2,a,"\.");}a[1]>t' your_fle

更新您的评论: 这应该工作。此命令将替换文件并删除所有行。

perl -i -lne 'if(/-(\d*)\.txt/){print if($1>20130910130000)}' your_file

答案 1 :(得分:1)

sed -i "/20130912[00-23][00-56][00-56]/d" fileName.txt

答案 2 :(得分:0)

var= awk -F“ - ”'{t = 20130912130000; split($ 2,a,“。”);} a [1]> t'hugetextfile`

表示$ var中的j 做         sed“/ $ j / d”-i hugetextfile DONE `

这里Variable var保存了hugetextfile中高于20130912130000的文件名列表。 for循环用于从hugetextfile

中逐个删除这些文件名

此致 VPK