Альтернативный подход с Python, который не требует регулярных выражений (хотя и не совсем надежных), заключается в обработке каждой строки в символе текстового файла по символу.
Основная идея того, как это работает: если мы видим двойную кавычку и флаг не поднят - поднимите флаг, и если мы увидим его снова, а флаг будет поднят - опустите флаг. Когда флаг поднят - так мы знаем, что мы находимся в двойных кавычках, поэтому мы можем хранить последующие символы. Как только флаг будет опущен, распечатайте то, что мы прочитали.
#!/usr/bin/env python
from __future__ import print_function
import sys
flag=False
quoted_string=[]
for line in sys.stdin:
for char in line.strip():
if char == '"':
if flag:
flag=False
if quoted_string:
print("".join(quoted_string))
quoted_string=[]
else:
flag=True
continue
if flag:
quoted_string.append(char)
И тестовый прогон:
$ cat input.txt
first matched is "One". the second is here"Two "
and here are in second line" Three ""Four".
$ ./get_quoted_words.py < input.txt
One
Two
Three
Four