Unix 如何使用grep显示以同一单词开头和结尾的行
我试图弄清楚如何显示以“world”开头、以“world”结尾的行Unix 如何使用grep显示以同一单词开头和结尾的行,unix,grep,Unix,Grep,我试图弄清楚如何显示以“world”开头、以“world”结尾的行 我知道grep“^world”显示任何以world开头的行,而grep“world$”显示以world结尾的行。如果要匹配同一个单词,可以使用(如果支持)\w+匹配1+个单词字符和对捕获单词的反向引用 ^(\w+)\b.*\1$ ^字符串的开头 (\w+)在组1中捕获1+个单词字符 \b.*单词边界,匹配任意字符0+次 \1对组1的反向引用 $字符串结尾 | 比如说 grep -E '^(\w+)\b.*\1$' fi
我知道grep“^world”显示任何以world开头的行,而grep“world$”显示以world结尾的行。如果要匹配同一个单词,可以使用(如果支持)
\w+
匹配1+个单词字符和对捕获单词的反向引用
^(\w+)\b.*\1$
字符串的开头^
在组1中捕获1+个单词字符(\w+)
单词边界,匹配任意字符0+次\b.*
对组1的反向引用\1
字符串结尾$
grep -E '^(\w+)\b.*\1$' file
要仅匹配word
,您可以选择其他模式
grep -E '^(\w+)(\b.*\1)?$' file
|@oguzismail我添加了一个附加项,该示例使用GNU grep。您想匹配
世界测试notworld
?还是“一杯龙舌兰酒”
。可能为“世界测试世界”添加选项i
。@Walter是的,我也这么做了,我想匹配“世界”。@第四只似乎有效但不适用于“世界”的鸟。如果这条线就是世界,它不是以世界开始和结束吗