一些特殊的选项:
- -e 选项
通常,第一个非选项的参数会指定要匹配的模式。你也可以提供多个模式,只要将它们放在引号里并以换行符分割他们。模式以减号开头时,grep会混淆,而将它视为选项。这就是-e选项排上用场的时候。他可以提供其参数为模式---即使它以减号开头。
例一:
grep -e 'boy' -e '^abc' test_grep.txt #abc def hic lmn abc #You are a good boy
使用-e可以以此匹配多个模式。
例二:
cat test_grep2.txt
-v
-l
-F
-f
grep '-v' test_grep2.txt 此时光标停在第二行,没有找到匹配行。这是因为grep将“-v”当做了选项,将test_grep2.txt当做了要匹配的模式,等在要求匹配的文件,因此在等待。此时用-e可以解决了
grep -e '-v' test_grep2.txt # -v
- -f 选项
可以将所有匹配模式写到一个文件中,用-f选项后面跟上此文件,这样可以一次匹配多个模式。
cat pat_file
good
boy
[0-9]
grep -f pat_file test_grep.txt #123 456 1.23 4.5 321 #You are a good boy #you are a good girl #you are not a good girl
- -r 选项
-r选项可以沿着一个目录树递归向下查找。
例:
grep -r 'good' ./ ./test/test1/test2.txt:good ./test/test1.txt:good Binary file ./.gstreamer-0.10/registry.i686.bin matches ./install.log:安装 gstreamer-plugins-good-0.10.9-1.el5_3.2.i386 ./pat_file:good