我一直试图在 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/