我有一句话,我想写一个shell命令来从文本中grep它: 这句话是:
self.timeout=2.0
但是,因为这是文件代码的一部分。 所以这句话也可以
self.timeout = 2.0
或
self.timeout =2.0
或
self.timeout = 8.0
即:除了“=”之外可能还有空格,而self.timeout的值可能不同。
所以有人可以帮我在shell命令中给我一个正则表达式。 无论如何,我知道shell:
grep "self.timeout*="
的工作原理。 但我认为它在shell命令中不是一个好的正则表达式。
非常感谢!
答案 0 :(得分:4)
我会这样做:
grep -E 'self\.timeout[ \t]*=[ \t]*[0-9.]+'
请注意:
| | | |
use egrep | | zero or more
| whitespace
|
make sure we're matching
a dot instead of
"any character"
答案 1 :(得分:2)
使用grep -E
又名egrep
,您可以使用正则表达式,*
运算符将匹配前面字符中的0个或更多:
egrep 'self\.timeout *='
或使用[[:space:]]
匹配所有空格字符:
egrep 'self\.timeout[[:space:]]*='