在bash中指定日期之前和之后提取文件

时间:2015-03-27 09:40:04

标签: bash

我有一个日志文件:

2015-03-22^/home/dave-pc/tas
2015-03-23^/home/dave-pc/tas/ss
2015-03-15^/home/dave-pc/tas
2015-03-22^/home/dave-pc/tas/ss
2015-03-25^/home/dave-pc/tas
2015-04-25^/home/dave-pc/tas/ss/aa
2015-03-25^/home/dave-pc/tas/aa
2015-01-10^/home/dave-pc/tas/cc

我需要在指定日期之前和之后找到一条线。 我试试这个,但是有一个问题,当我在日志文件中没有日期...

sort log.txt | grep -wns 2015-03-23 -A $(wc -l <log.txt)

1 个答案:

答案 0 :(得分:0)

尝试将这些单行的输出与您发布的样本数据进行比较:

pattern="2015-03-27"; if ! sort log.txt | grep -nw "$pattern" -A1 -B1; then echo "$pattern" | sort log.txt - | grep "$pattern" -A1 -B1 ; fi

pattern="2015-03-23"; if ! sort log.txt | grep -nw "$pattern" -A1 -B1; then echo "$pattern" | sort log.txt - | grep "$pattern" -A1 -B1 ; fi

说明:如果在排序文件中找不到模式,则将模式“插入”排序文件(不是磁盘上的文件,而是管道中的文件),然后再次进行grepped。

相关问题