打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
《Linux Shell》之一:正则表达式

Bash的通配符:

1.  ?   匹配单个字符,ls -l aa?b.txt

2.  *    匹配任意个字符  ls -l aa*b.txt

3.  []   匹配中括号中的任意一个字符 ls -l aa[trh]b.txt,   ls -l aa[a-d]b.txt

4.  {}   一组表达式,用逗号,隔开,只要满足其中一条即可  ls -l ls{[ro]*a,[s-v]}*a

5.  ^    在[]中使用,表示不等于这里面内容的,注意:是完全匹配,跟正则表达式不一样  ls -l [^myconfig]*.txt

6.  GOLBIGNORE  内部变量GLOBIGNORE保存了通配时所忽略的文件名集合

 

grep 命令:

基本用法:grep [选项] [模式] [文件...]

grep命令由选项、模式、文件三部分组成,它在一个或多个文件中搜索满足模式的文本行,模板后的所有字符串被看成文件名,文件名可以多个,搜索结果被打印到标准输出,不影响原文件内容。

grep命令的选项:

-c    只输出匹配行的数量

-i    搜索时忽略大小写

-h   查询多文件时不显示文件名

-l    只列出复合匹配的文件名,不列出具体匹配行

-n   列出所有匹配行,并且显示行号

-s   不显示不匹配或无匹配的错误信息

-v   反向匹配,显示所有不匹配的行

-w   匹配整词,并且以模式的字面含义去解析它,而不去解析正则式的元字符

-x    匹配整行,并且也是跟-w一样以字面含义去解析

-r    递归搜索,不仅搜索当前工作目录,而且搜索子目录

-q   禁止输出任何结果,以退出状态值表示搜索是否成功

-b   打印匹配行距离文件头部偏移量,以字节为单位

-o   与-b结合使用,打印匹配的词距离文件头部的偏移量,以字节为单位

-E   支持扩展的正则表达式

-F   不支持正则表达式,按照字符串的字面意思搜索 

 

POSIX字符类:

为了保持不同国家的字符编码一致性,POSIX Portable Operating System Interface增加了特殊的字符类,以[:classname:]的格式给出,grep命令支持POSIX字符类,下面是POSIX类及其意义:
[:upper:]    表示大写字母[A-Z]

[:lower:]     表示小写字母[a-z]

[:digit:]       表示阿拉伯数字[0-9]

[:alnum:]    表示大小写和阿拉伯数字[a-zA-Z0-9]

[:space:]    表示空格或者TAB键

[:alpha:]     表示大小写字母[a-zA-Z]

[:cntrl:]       表示Ctrl键

[:graph:]或[:print:]    表示ASCII码33~126之间的字符

[:xdigit:]      表示16进制数字[0-9A-Fa-f]

 

下面举几个例子:

# 利用POSIX字符类搜索以大写字母开头的行

# grep '^[[:upper:]]' test.txt

 

精确匹配: \<test\> 其实效果跟  grep -w test 是一样的,匹配整个单词test

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
linux grep正则表达式与grep用法详解
Linux必学60个命令文件处理
grep高级应用
grep技巧(
《shell编程指南》读书笔记(三)——文本处理(正则表达式,grep,awk,sed)
linux返回用户主目录的命令有哪些,Linux基本命令汇总
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服