2013-07-10 79 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 

注意我在你的文件編碼這個特定的搜索是非貪婪所以它也將發現多套「..」字符串。

相關問題