千家信息网

grep的使用及正则表达式

发表于:2024-10-17 作者:千家信息网编辑
千家信息网最后更新 2024年10月17日,1.常用选项: -E :开启扩展(Extend)的正则表达式。-i :忽略大小写(ignore case)。-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。-n :显
千家信息网最后更新 2024年10月17日grep的使用及正则表达式

1.常用选项:

       -E :开启扩展(Extend)的正则表达式。  -i :忽略大小写(ignore case)。  -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。  -n :显示行号  -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker  -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。  -o :只显示被模式匹配到的字符串。  --color :将匹配到的内容以颜色高亮显示。  -A  n:显示匹配到的字符串所在的行及其后n行,after  -B  n:显示匹配到的字符串所在的行及其前n行,before  -C  n:显示匹配到的字符串所在的行及其前后各n行,context

2.常用表达式参数

\btom\b    "\b"中间tom代表是一个单词\d              表示一个数字\d{2}-\d{8}。 这里\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次(8次)。\s               匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格等。\w       匹配字母或数字或下划线或汉字等。.          匹配除换行符以外的任意字符\d        匹配数字\b        匹配单词的开始或结束^         匹配字符串的开始  //^和$匹配的是行$         匹配字符串的结束^\d{5,12}$    填写的QQ号必须为5位到12位数字备注:"\d" 等这些字符只有在perl{正则支持的相对完整} 中能够使用转义):     \字符 重复):    *            重复零次或更多次    +            重复一次或更多次    ?            重复零次或一次    {n}         重复n次    {n,}        重复n次或更多次    {n,m}     重复n到m次

基础用法

cat 123.txt |grep '\bno\b'
#\b 牟定词首 或者词尾,上面表示只匹配no字符,多一个都不行
cat 123.txt |grep '^root.400$'
#^牟定行首,$牟定行尾,表示匹配以root开头,以400结尾的行
echo "111222333"|grep -o 1.
2
#只显示匹配到的词

cat /etc/passwd|grep -n -A 1 '^root.*'
#显示root行,及下一行,还有行号,-A换成-B就是上一行,换成-C就是上下各1行。

匹配数字
echo "ABC123abc"|grep -o [0-9]|xargs
#匹配出数字,由于grep特性,显示的数字会竖排显示,管道送给xargs处理一下

cat cs/testfile.txt |grep -x -n test #-x只显示完整匹配一行的,-n 加上行号效果和 sed -n '/^test$/=' 差不多

echo "2002 1945 1644 1892 1946"|grep -P '\b(20|19)[0-9]{2}\b'
#表示以20或者19开头后面两个字符为数字,{2}的意思是前面[0-9]必须匹配到两次,至少匹配到的是4位数,但是两个\b牟定的词首和词尾所以只能的是4位数

高级用法

echo "http://www.ylc520.com/"|grep -oP '.+(?=://)'
#输出结果 http, 表示以://为定界 往前匹配,.+ 表示任意字符出现1次或者多次
echo "http://www.ylc520.com/"|grep -oP '(?<=://).+'
#输出 www.ylc520.com/ ,表示以://为定界 往后匹配,.+ 表示任意字符出现1次或者多次
echo "http://www.ylc520.com/"|grep -oP '(?<=www.).+(?=.com)'
#输出结果 ylc520 表示以www. 为定界往后匹配,同时以.com为定界往前匹配,.*匹配任意字符任意长度

grep -l -r 'test' cs/
#查找cs文件夹里包含'test'字符的文件。-l显示匹配出的文件,不是字符 加-r可以查找文件夹

常用正则表达式

URL地址           https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?完整的URL地址    https?://(\w*:\w*@)?[-\w.]+(:\d+)?(/([\w/_.]*(\?\S+)?)?)?图片简单URL地址     https?://[\w/.-\\]+\.((gif)|(jpg)|(png)|(bmp))电子邮件地址          (\w+\.)*\w+@(\w+\.)+[A-Za-z]+IP地址                      (((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))HTML注释            
字符 数字 字符串 地址 单词 文件 牟定 正则 表达式 一行 常用 所在 更多 行号 输出 两个 位数 内容 同时 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全加固包括哪些 中国网络安全管理信息网 数据库系统第二章总结 临沂方位网络技术有限公司介绍 数据库修改表中类型长度限制 重庆医院医疗系统软件开发 视联动力软件开发 数据库连接错误代码1130 我的世界网易版服务器有趣的指令 通达信绿色通道服务器地址 莆田精益管理软件开发 小软件开发学什么软件开发 无线网络技术大全 服务器最大能管理多大分区 法院开展网络安全普法活动 步步网络技术 地区网络安全和保密隐患自查 服务器机柜大小 服务器u盘启动盘制作步骤 网络技术类的专业 xp关闭服务器浏览器安全设置 京东软件开发工作地点 软件开发合同 售后约定 浙江营销网络技术市场价格 国外网络安全公司 苏州安卓软件开发多少钱 数据库建立一个图书信息表 移动宽带家庭组网服务器 华为云弹性云服务器安全性能 网络技术类的专业
0