我有一个包含以下文字的文件
Jun 9 2014
some text...
Jun 10 2014
some text...
some text...
Jun 10 2014
some text...
Jun 10 2014
some text...
Jun 11 2014
some text...
Jun 12 2014
some text...
我尝试使用这样的sed命令:
sed /"Jun 10 2014"/,/"Jun 10 2014"/p file_name.txt
但这只会在第一个和第二个字符串2014年6月10日之间提供文本
我想提取2014年6月10日第一次出现的字符串到2014年6月10日相同字符串的最后一次出现之间的所有文本,包括2014年6月10日到2014年6月11日之前的文本。
答案 0 :(得分:0)
您可以使用Jun 10 2014
到Jun 11 2014
的范围,但可以在其中进行额外的过滤:
$ sed -n '/Jun 10 2014/,/Jun 11 2014/ {/Jun 1[01] 2014/!p}' file_name.txt
some text...
some text...
some text...
some text...
答案 1 :(得分:0)
以下是awk
解决方案:
awk '/^Jun 10/ {f=1} /^Jun/ && !/^Jun 10/ {f=0} f && !/^Jun/' file
some text...
some text...
some text...
some text...
从Jun 10
打印到不再Jun 10