我写了一个简单的正则表达式来输出文件中带引号的字符串
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