grep命令详解

说明:
grep用于分析一行信息, 若当中有我们所需要的信息,就将该行拿出来

语法:

# grep [-acinv] [--color=auto] '搜寻字符串' filename
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
-C :--context=NUM         print NUM lines of output context
-B :before
-A :after
--color=auto :可以将找到的关键词部分加上颜色的显示喔!

 
示例:
范例一:将 last 当中,有出现 root 的那一行就取出来;

# last | grep 'root'

 
范例二:与范例一相反,只要没有 root 的就取出!

# last | grep -v 'root'

 
范例三:在 last 的输出信息中,只要有 root 就取出,并且仅取第一栏

# last | grep 'root' |cut -d ' ' -f1  //在取出 root 之后,利用上个命令 cut 的处理,就能够仅取得第一栏啰!

 
范例四:取出 /etc/man.config 内含 MANPATH 的那几行

# grep --color=auto 'MANPATH' /etc/man.config
....(前面省略)....
MANPATH_MAP     /usr/X11R6/bin          /usr/X11R6/man
MANPATH_MAP     /usr/bin/X11            /usr/X11R6/man
MANPATH_MAP     /usr/bin/mh             /usr/share/man

神奇的是,如果加上 –color=auto 的选项,找到的关键词部分会用特殊颜色显示喔!

范例五:查看历史记录上下5行

# history |grep  install-webconf -n5  //查看history中关于install-webconf上下5行的内容
# grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行
# grep -B 5 foo file  显示foo及前5行
# grep -A 5 foo file  显示foo及后5行

 
实例六:多条件或查询

# grep -E '(a.a.a.a|b.b.b.b|c.c.c.c)' /var/log/secure  //查询secure日志中有a.a.a.a或b.b.b.b或c.c.c.c的记录

 
附录:
1.高亮显示grep搜索的关键字
在关键字的显示方面,grep 可以使用 –color=auto 来将关键字部分使用颜色显示。 这可是个很不错的功能啊!但是如果每次使用 grep 都得要自行加上 –color=auto 又显的很麻烦~ 此时那个好用的 alias 就得来处理一下啦!你可以在 ~/.bashrc 内加上这行:『alias grep=’grep –color=auto’』再以『 source ~/.bashrc 』来立即生效即可喔! 这样每次运行 grep 他都会自动帮你加上颜色显示啦!

发表评论

邮箱地址不会被公开。 必填项已用*标注