2013-07-10 46 views
1

我有一个包含模式的文本文件。 (一段时间后跟一个单引号)和'。 (报价后跟一段时间)。我想从中提取所有的行。'至 '。使用awk或grep。从文件中提取两个模式之间的所有行

`lasjdalsjd 
ljsdlasdkj.'lsjdlsjd 
wqeuoqweui0 
90u402394ewlrj 
lwejwerj 
'. 
klfjksldkjfsdlfkj 
dslfslfkjdsf 

在上面的文字我想单独​​提取

lsjdlsjd 
wqeuoqweui0 
90u402394ewlrj 
lwejwerj 

。我怎样才能做到这一点 ?

回答

0

与已提供的样本数据,这个工程

awk "/\.'/, /'\./{sub(\".*[.]'\", \"\"); sub(\".*'[.]\", \"\");print}" 
0

使用sed的,你可以这样做:

sed -n "/\.'/,/'\./{s/^.*\.'//; s/'\..*$//; p;}" file 
0

大多数正则表达式库包括多行标志。例如Perl中的“M”标志:

perl -ne "BEGIN{undef \$/;} print \$1 while (/'(.*?)'/smg)" yourfile 

注意我在你的文件编码这个特定的搜索是非贪婪所以它也将发现多套“..”字符串。

相关问题