我有一个包含以下内容的文件

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日

我想提取字符串Jun 10 2014的第一个匹配项到同一字符串Jun 10 2014的最后一个匹配项之间的所有文本,包括其后跟最后一个Jun 10 2014直到文本Jun 11 2014的文本。

最佳答案

您可以使用从Jun 10 2014Jun 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...

关于linux - 如何从Linux中两个相似字符串之间的文件中提取文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24465013/

10-13 06:55