我有一个日志文件:
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)
答案 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。