如何使用 grep 显示以相同单词开头和结尾的行



我试图弄清楚如何显示以"世界"开头并以"世界"结尾的行。

我知道 grep '^world' 显示任何以 world 开头的行,而 grep 'world$' 显示以 world 结尾的行。

如果要匹配相同的单词,可以使用(如果支持(w+来匹配 1+ 单词字符和对捕获单词的反向引用。

^(w+)b.*1$
  • ^字符串开头
    • (w+)捕获第 1 组中的 1+ 单词字符
  • b.*单词边界,匹配任意字符 0+ 次
  • 1对组 1 的反向引用
  • $字符串结尾

正则表达式演示 |在线试用(使用 GNU grep(

例如

grep -E '^(w+)b.*1$' file

为了也只匹配word,你可以使模式的其余部分可选

grep -E '^(w+)(b.*1)?$' file

正则表达式演示 |在线试用(使用 GNU grep(

相关内容

最新更新