查找具有未终止双引号的行

时间:2014-04-15 17:04:03

标签: regex bash sed

对于给定的文件 -

test_file里面

----------
<At_First_Sight> <isCalled> "A.
<The_Godfather> <isCalled> "A.
<The_Godfather> <isCalled> "Mrr.
<Night_of_the_Comet> <type> "wikicategory_Comedy_science_fiction_films".


Required output should be - 
<Night_of_the_Comet> <type> "wikicategory_Comedy_science_fiction_films".

因为这已经终止了双重引号。你也可以假设s行中不会有超过2个双引号

Command - ^(.+?\"[^\"]+\.)

似乎可以使用基于Web的正则表达式检查程序,但不能使用bash。

1 个答案:

答案 0 :(得分:4)

使用egrep更容易:

egrep '^[^"]*"[^"]*$' file
<At_First_Sight> <isCalled> "A.
<The_Godfather> <isCalled> "A.
<The_Godfather> <isCalled> "Mrr.

如果你想要sed,那么使用:

sed -n '/^[^"]*"[^"]*$/p' file