Linux中grep命令
1.grep介绍grep命令是Linux中的一个强大的文本过滤查找工具,可接正则表达式过滤,把匹配行打印出来基本语法grep [-option] pattern filename2.常用参数直接加匹配内容(匹配内容可加 " " 也可以不加)# 输出/etc/passwd有mysql的行grep mysql /etc/passwdcat /etc/passwd |grep mysql# 查看有关my
·
1.grep介绍
- grep命令是Linux中的一个强大的文本过滤查找工具,可接正则表达式过滤,把匹配行打印出来
- 基本语法
grep [-option] pattern filename
2.常用参数
- 直接加匹配内容(匹配内容可加 " " 也可以不加)
# 输出/etc/passwd有mysql的行
grep mysql /etc/passwd
cat /etc/passwd |grep mysql
# 查看有关mysql服务的进程相关信息
ps -ef |grep "mysql"
- -v:反向查找,即匹配出没有关键字的行
# 输出/etc/passwd 没有bash的行
grep -v "bash" /etc/passwd
- -i:匹配时不区分大小写
# 不区分大小写输出/etc/passwd中有bash的行
grep -i "bash" /etc/passwd
- -c:输出匹配行的行数
# 输出/etc/passwd 含有bash的行数
grep -c "bash" /etc/passwd
- -o:只输出匹配内容
# 只输出/etc/passwd中root关键字
grep -o "root" /etc/passwd
- -n:把行号也输出出来
# 输出/etc/passwd含有bash的行以及行号
grep -n "bash" /etc/passwd
- -q:不输出到终端
# 过滤/etc/passwd中有root的行但不输出到终端
grep -q "root" /etc/passwd
- -A,-B,-C:三者后面都是接阿拉伯数字
#-A是显示匹配后和它后面的n行
grep -A 5 ftp /etc/passwd # 输出/etc/passwd的含有ftp的行以及其后面的5行
#-B是显示匹配行和它前面的n行
grep -B 5 ftp /etc/passwd # 输出/etc/passwd的含有ftp的行以及其前面的5行
#-C是匹配行和它前后各n行
grep -C 5 ftp /etc/passwd # 输出/etc/passwd的含有ftp的行以及其前后5行
3.接正则
- $:表示以***结尾
# 过滤出/etc/passwd中以bash结尾的行并且输出
grep "bash$" /etc/passwd
- ^:表示以***开头
# 过滤出/etc/passwd中以 r,m,f 开头的行并输出
grep "^[rmf]" /etc/passwd
grep "^r|^m|^f" /etc/passwd
# 输出/etc/selinux/config中的有效行(即不以#开头的行)
grep -v "^#" /etc/selinux/config
- [ ]:表示字符集合
# 输出/var/log/messages里Jun 30 14:15:00~14:19:59这个时间段的日志
grep "^Jun 30 14:1[5-9]:[0-5][0-9]" /var/log/messages
- 用正则匹配ip地址( grep -E 和 egrep 的效果一致 )
# 过滤access.log日志中ip地址并且按出现次数从大到小进行排序统计
cat access.log |grep -Eo "([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}"|sort|uniq -c|sort -nr
更多推荐
已为社区贡献1条内容
所有评论(0)