我坚持试图grep任何刚刚name =后,只包括空格和字母数字。
例如。:
name=some value here
我得到
some value here
grep 'name=.*' filename
任何帮助深表感谢。
正如详细
here,你想要一个正的lookbehind子句,如:
grep -P '(?<=name=)[ A-Za-z0-9]*' filename
-P使grep使用Perl方言,否则你可能需要转义圆括号。您还可以,如别处所述,附加-o参数以仅打印匹配的内容。括号中的部分指定您需要字母数字和空格。
使用正lookbehind子句的优点是“name =”文本不是匹配的一部分。如果grep突出显示匹配的文本,它将只突出显示字母数字(和空格)部分。 -o参数也不会显示“name =”部分。并且,如果你转换到另一个程序,如sed,可能捕获文本,并做一些事情,你不会捕获“name =”部分,虽然你也可以通过使用捕获的父母。