一、grep 命令
(1)命令格式
grep [选项] pattern [file]
(2)常用参数
参数 描述
-c 计算找到 '搜寻字符串'(即 pattern) 的次数
-i 忽略大小写的不同,所以大小写视为相同
-n 输出行号
-v 反向选择,打印不匹配的行
-r 递归搜索
--color=auto 将找到的关键词部分加上颜色显示
(3)常用范例
例一:将/etc/passwd 文件中出现 root 的行取出来,关键词部分加上颜色显示,可以使用如下命令:
grep "root" /etc/passwd --color=auto
cat /etc/passwd | grep "root" --color=auto
例二:将/etc/passwd 文件中没有出现 root 和 nologin 的行取出来,可以使用如下命令:
grep -v "root" /etc/passwd | grep -v "nologin"
例三:在当前目录下递归搜索文件中包含 main()的文件,经常用于查找某些函数位于哪些源代码文件中,可以使用如下命令:
grep -r "main()".
2.3 正则表达式与 grep 命令
正则表达式元字符由以下字符组成:
^ $ . [ ] { } - ? * + ( ) | \
(1)常用范例
例一:利用 Linux 系统自带的字典查找一个五个字母的单词,第三个字母为 j,最后一个字母为 r ,/usr/share/dict 目录下存放字典文件,可以使用如下命令:
grep '^..j.r$' linux.words
例二:验证固定电话,打印符合条件的电话,固定电话格式基本都是带有 0 的区号+连接符“-”+电话号码,另外还有可能有分机号,区号有 3 位、4 位,电话号码有 7 位和 8 位的,可以使用如下命令:
grep "^0[0-9]{2,3}-[0-9]{7,8}(