0

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

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

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

4

3 回答 3

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
于 2013-09-20T07:23:02.537 回答
1
sed -i "/20130912[00-23][00-56][00-56]/d" fileName.txt
于 2013-09-20T07:36:02.123 回答
0

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

for j in $var do sed "/$j/d" -i hugetextfile done `

这里 Variable var 保存了hugetextfile中大于20130912130000的文件名列表。而for循环用于从hugetextfile中一一删除这些文件名

问候, VPK

于 2013-09-20T12:22:10.220 回答