正则表达式从文件中提取/输出带引号的字符串



我写了一个简单的正则表达式来输出文件中带引号的字符串

cat mobydick.txt |  while read line; do echo -n "$line "; done | grep -oP '[^"]*"K[^"]*'

这就是我到目前为止所拥有的

例如,当我在这个文件 mobydick 上运行这个单行代码时.txt我在一行中获取输出,而不是新行分隔的字符串。

有人可以帮我写剧本吗?

预期输出 --> 当上述脚本在 mobydick 上运行时.txt
"从我二十五岁开始,我就约会了我的生活。
"叫我以实玛利。"

上面的输入文件可以从这个网址下载

使用 GNU grep(1) (grep(1) 的其他化身没有 -P):

tr 'n' ' ' <mobydick.txt | grep -P -o '(?<=s)"[^"]+"(?=s)'

更准确地说,使用 pcregrep(1):

pcregrep -M -o '(?<=^|s)"[^"]+"(?=$|s)' mobydick.txt

最新更新