Grep 格雷普:如何找到以开头和结尾的单词

Grep 格雷普:如何找到以开头和结尾的单词,grep,Grep,如何找到以“version”开头,以引号+空格结尾的单词 例如,我想寻找如下词语: version="1.0" version="1.1.1" version="1.2.1" 在包含以下文本的文件中:blah version=“1.2.1”blah 因此,如何使用grep查找以version=“开始并以quote+空格结尾的单词 我试过: grep -o '\version=".*"( |$)' filename 它不返回任何内容,因为找不到任何内容。我建议使用GNU grep: grep

如何找到以“version”开头,以引号+空格结尾的单词

例如,我想寻找如下词语:

version="1.0"
version="1.1.1"
version="1.2.1"
在包含以下文本的文件中:blah version=“1.2.1”blah

因此,如何使用grep查找以version=“开始并以quote+空格结尾的单词

我试过:

grep -o '\version=".*"( |$)' filename

它不返回任何内容,因为找不到任何内容。

我建议使用GNU grep:

grep -Po 'version="[0-9.]+"(?= )' file

当您尝试这样做时,您得到了什么结果,这些结果有什么问题?您希望有什么不同?在Or构造中放置一个行尾字符是没有意义的,每一行都以
$
(|$)
表示“空格或行尾”,但您需要可选的空格“,“?”表示0或1,或“*”表示0或更多。我会推荐后者,因为为什么不尽可能使其通用?请看: