2010年11月3日星期三

grep -E

grep查找bin下面的文件怎么没有呢?
tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep 'bin/.+'
需要用扩展的模式(Extended Regular Expression)才行:
tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep -E 'bin/.+'
/usr/bin/select-editor
/usr/bin/sensible-browser
/usr/bin/sensible-editor
/usr/bin/sensible-pager
因为在基本模式下,需要\+代替+才行:
tux@dell:/etc/alternatives$ dpkg -L sensible-utils | grep 'bin/.\+'
/usr/bin/select-editor
/usr/bin/sensible-browser
/usr/bin/sensible-editor
/usr/bin/sensible-pager
grep的手册里面说了:
Basic vs Extended Regular Expressions In basic regular expressions the meta-characters ?, +, {, |, (, and ) lose their special meaning; instead use the backslashed versions \?, \+, \{, \|, \(, and \).
grep默认不是Extended模式,需要加参数-E。可是扩展模式才是习惯的模式,用的时候还得记着,或者用egrep

没有评论:

发表评论