linux中怎么用grep查找文档(Linux命令之grep)

概述

一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

linux中怎么用grep查找文档(Linux命令之grep)(1)

命令格式

grep [options] [pattern] file|directory

1. 命令选项

-l 列出包含指定模式的文件的文件名

-i 忽略大小写

-w 完全匹配关键词

-n 查找指定模式并显示匹配行的行号

-v 输出不包含指定模式的行

-o 仅显示匹配的字符串

-r 递归地查找特定模式

-e 查找多个模式

-c 计算模式匹配到的数量

-B 输出匹配指定模式前N行

-A 输出匹配指定模式后N行

-C 输出匹配指定模式前后N行

-E 扩展正则表达式

-l 打印匹配的文件名

-L 打印不匹配的文件名

2.常见正则

^ 匹配行开始,如:/^sed/匹配所有以sed开头的行。

$ 匹配行结束,如:/sed$/匹配所有以sed结尾的行。

x{m} 重复字符x,m次,如:/0\{5\}/匹配包含5个0的行。

x{m,} 重复字符x,至少m次,如:/0\{5,\}/匹配至少有5个0的行。

x{m,n} 重复字符x,至少m次,不多于n次,如:/0\{5,10\}/匹配5~10个0的行。

^$ 匹配空行

abc$ 匹配以abc结尾的行

[] 匹配一个指定范围内的字符,如[0-9a-z]

[^] 匹配一个不在指定范围内的字符

\<[0-9]{2}\> 匹配独立2位数

使用示例

1. 以#开头的行及空行不显示

grep -v "^#\|^$" /etc/rsyslog.conf

2. 清除本机除了当前登陆用户以外的所有用户

kill $(who -u|grep -v `whoami`|awk '{print $6}'|sort -u)

3. 统计etc及其子目录下所有文件数量

ls -lR /etc/ | grep "^-" | wc -l

4. 打印本机eth0网卡ipv4地址

ifconfig eth0|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | awk '{print $2}'

5. 打印本机eth0网卡mac地址

ifconfig eth0|egrep '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}' | awk '{print $2}'

ifconfig eth0|egrep '[0-9a-fA-F]{4}(\.[0-9a-fA-F]{4}){2}' | awk '{print $2}'

6. 多个模式关键词匹配

grep -Ew "Run|Quit" rj.log

7. 匹配包含三位数字的行

grep -E "\<[0-9]{3}\>" a.c

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页