regex - 如何使用 grep 获取 `name=` 之后的任何内容?

标签 regex bash grep

我一直试图在 name= 之后尝试 grep 任何内容,仅包括空格和字母数字。

例如:

name=some value here

我明白了

some value here

我完全是新手,下面的 grep 匹配所有内容,包括 name=

grep 'name=.*' filename

非常感谢任何帮助。

最佳答案

详细here ,你想要一个积极的回顾条款,例如:

grep -P '(?<=name=)[ A-Za-z0-9]*' filename

-P 使 grep 使用 Perl 方言,否则您可能需要转义括号。如其他地方所述,您还可以附加 -o 参数以仅打印出匹配的内容。括号中的部分指定您需要字母数字和空格。

使用正后视子句的优点是“name=”文本不是匹配项的一部分。如果 grep 突出显示匹配的文本,它只会突出显示字母数字(和空格)部分。 -o 参数也不会显示“name=”部分。而且,如果您将其转换为另一个程序,如 sed,它可能会捕获文本并对其进行处理,您将不会捕获“name=”部分,尽管您也可以使用捕获括号来实现。

关于regex - 如何使用 grep 获取 `name=` 之后的任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247812/

相关文章:

Bash:重定向已经运行的进程的输出?

bash - 从另一个文件中删除包含 ID 的每一行

Perl grep 即使在列表上下文中也总是返回匹配数

linux - 在bash shell脚本中,在文件的最后10行中搜索单词。如果找到,则执行一个操作,否则执行另一个操作

javascript - 使批量 JavaScript 替换更高效

javascript - 正则表达式来选择引号中的所有空格?

PHP 在字符串中搜索电子邮件地址

bash - 在查找中使用 -print0 和 -o

mysql - 使用 SQL 来匹配查询字符串中的字符

regex - 使用正则表达式验证 Bash 参数