格式:
grep [OPTIONS] PATTERN [FILE...] grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
egrep
, fgrep
等都是 grep 的变种和扩展:
egrep == grep -E fgrep == grep -F
参数
-e
This can be used to specify multiple search patterns
-f
Obtain patterns from FILE, one per line.
-i | --ignore-case
: 忽略大小写
-v
--invert-match
-w
--word-regexp
-x
--line-regexp
-c
print the match line number
-m
-n, --line-number
: 打印行号
TankyWoo@Mac-OS::tool/ (master*) » grep 'tankywoo' ssh.md IdentityFile ~/.ssh/tankywoo # tankywoo就是私钥文件 TankyWoo@Mac-OS::tool/ (master*) » grep -n 'tankywoo' ssh.md 42: IdentityFile ~/.ssh/tankywoo # tankywoo就是私钥文件
-R | -r | --recursive
: 递归查询
-l, --files-with-matches
: 只显示匹配的文件列表
--include
: 只搜索匹配指定文件名模式的文件。
# 在 souce/_posts 目录下, 在所有以.makrdown后缀文件里搜索含有tankywoo-wiki字符串的行 grep -r --include *.markdown 'tankywoo-wiki' source/_posts
Examples
# The test.file is : root@gentoo-jl tmp # cat -n test.file 1 TankyWoo 2 tankywoo 3 tank 4 helloworld 5 say hello root@gentoo-jl tmp # grep -in 'tanky' test.file 1:TankyWoo 2:tankywoo root@gentoo-jl tmp # grep -in -e 'tanky' -e 'hello' test.file 1:TankyWoo 2:tankywoo 4:helloworld 5:say hello root@gentoo-jl tmp # grep -inv 'tanky' test.file 3:tank 4:helloworld 5:say hello root@gentoo-jl tmp # grep -in -w 'sa' test.file root@gentoo-jl tmp # grep -in -w 'say' test.file 5:say hello root@gentoo-jl tmp # grep -in -x 'say' test.file root@gentoo-jl tmp # grep -in -x 'say hello' test.file 5:say hello