regex - Linux - 只在一行中找到一个模式,而不是整行

标签 regex linux bash

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

例子:

输入:AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC

正则表达式:Xx.*yY

输出:XxXxXxXxBananasyYyYyYyY

最佳答案

你很接近,你需要 -o 标志

grep -o 'Xx.*yY' <<<AAAAAAAAAAAAAXxXxXxXxBananasyYyYyYyYBBBBBBBCCCCCC
XxXxXxXxBananasyYyYyYyY

关于regex - Linux - 只在一行中找到一个模式,而不是整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22874724/

相关文章:

mysql - 超出 MariaDB/MySQL 资源限制

java - Linux (Ubuntu) Java 插件和控制台

bash - 如何在 bash 脚本中为 if 条件组合 AND 和 OR 条件?

Bash/JQ - 解析错误 : Expected separator between values at line 1, 第 63 列

linux - 从我的环境中删除错误的路径

java - 正则表达式 a-z 0-9 但不仅仅是数字

javascript - 用正则表达式在 Javascript 中用链接替换用户名

python - 基于 url 的正则表达式前瞻

javascript - 如何为字符串中所有相同的 URL 定义相同的数字?

linux - 调用键盘按键,通过 proc - tcl 中的过程(函数)