著名开源软件撰稿人Michael Stutz在Linux.com上写作了一篇关于grep新特新的文章,其中描述了主要的几个非常有用的新特性:
- 新的选项 -o
新选项 -o 允许用户只匹配字符串而不是某一行
比如想要抓取某个文件中的URL地址egrep -o '(((http(s)?|ftp|telnet|news|gopher)://|mailto:)[^\(\)[:space:]]+)' logfile
抓取某个文件中的电子邮件email地址egrep -o '\@/:[:space:]]+\>@[a-zA-Z_\.]+?\.[a-zA-Z]{2,3}' somefile
抓取某个邮件存档中的所有发信人地址导出并排序grep '^From: ' huge-mail-archive | egrep -o '\@/:[:space:]]+\>@[a-zA-Z_\.]+?\.[a-zA-Z]{2,3}' | sort | uniq > email.addresses
- 使用带颜色的匹配输出
grep --color=always "regexp" myfile | less -R
也可以通过定义 GREP_COLOR 变量设置颜色30 black
31 red
32 green
33 yellow
34 blue
35 purple
36 cyan
37 white
比如说:GREP_COLOR=32; export GREP_COLOR; grep pattern myfile
- 允许用户使用Perl的正则表达式
这里新引进了 -P 参数,比如匹配一个系统响铃grep -P '\cG' myfile
- 标准输入行为
如比你只想匹配 /usr/local/src 中 包含 “linux" 的txt文件grep -r --include=*.txt linux /usr/local/src
还可以指定特定的设备grep -r --device=skip linux /
当搜索一个大文档时,查找10匹配就退出grep --line-buffered -m 10 huge.file
- POSIX 的升级
升级到符合POSIX 2标准,特别对于正则表达式
就我个人而言是非常喜欢grep的,在系统管理上有很大的用处,当然对与一个Unix/Linux的程序员也是一个非常好的工具,更快更实用,就是GNU/grep的设计标准。
No comments:
Post a Comment