Linux - 只查找一行内的模式,而不是整行

Mik*_*ity 10 regex linux bash

我想使用正则表达式在文件中查找模式.那个模式可能在一条线的中间,但我不想要整条线.我试过grep -a pattern file但这会返回包含正则表达式的整行.以下是我正在尝试做的一个例子.有谁知道这样做的方法?

例:

输入: AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC

正则表达式: Xx.*yY

输出继电器: XxXxXxXxBananasyYyYyYyY

iru*_*var 11

你很亲密,你需要-o国旗

grep -o 'Xx.*yY' <<<AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC
XxXxXxXxBananasyYyYyYyY
Run Code Online (Sandbox Code Playgroud)

  • 注意:`-o`标志是非标准的,尽管它存在于BSD和GNU用户空间系统上. (3认同)

Bar*_*mar 5

使用该-o选项仅打印与正则表达式匹配的行部分

grep -o pattern file
Run Code Online (Sandbox Code Playgroud)