当前位置: 首页 > news >正文

常州网站建设运营网站建设需求填表

常州网站建设运营,网站建设需求填表,开发第一个app应用程序,上市公司网站设计【BASH】回顾与知识点梳理 九 九. 扩展正则表达式(延伸正规表示法)9.1 egrep命令语法匹配指定模式的行(用法和grep相同)忽略大小写匹配(用法和grep相同)反向匹配(用法和grep相同)显示行号(用法和grep相同)递归搜索目录(用法和grep相同)匹配整词(用法和grep相同)统计匹配行数(用…

【BASH】回顾与知识点梳理 九

    • 九. 扩展正则表达式(延伸正规表示法)
      • 9.1 egrep命令语法
        • 匹配指定模式的行(用法和grep相同)
        • 忽略大小写匹配(用法和grep相同)
        • 反向匹配(用法和grep相同)
        • 显示行号(用法和grep相同)
        • 递归搜索目录(用法和grep相同)
        • 匹配整词(用法和grep相同)
        • 统计匹配行数(用法和grep相同)
        • 显示匹配行及其上下文内容(用法和grep相同)
      • 9.2 egrep和grep的区别
      • 9.3 延伸型的正规表示法的特殊字符
        • 匹配重复字符(用法和grep不同)
        • 匹配分组模式(用法和grep不同)
        • 匹配'或'模式(用法和grep不同)
        • 匹配重复群组(用法和grep不同)

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

九. 扩展正则表达式(延伸正规表示法)

事实上,一般读者只要了解基础型的正规表示法大概就已经相当足够了,不过,某些时刻为了要简化整个指令操作, 了解一下使用范围更广的延伸型正规表示法的表示式会更方便呢!举个简单的例子好了,在上节的例题三的最后一个例子中,我们要去除空白行与行首为 # 的行列,使用的是

grep -v '^$' regular_express.txt | grep -v '^#'

需要使用到管线命令来搜寻两次!那么如果使用延伸型的正规表示法,我们可以简化为:

egrep -v '^$|^#' regular_express.txt

9.1 egrep命令语法

下面是 egrep 命令的基本语法:

egrep [选项] '模式' 文件

选项:

选项描述
-i忽略大小写进行匹配
-v反向匹配,输出不匹配模式的行
-n显示匹配行的行号
-r递归搜索,对目录下的所有文件进行匹配
-w匹配整词,仅匹配单词的完整匹配
-c统计匹配到的行数
-A显示匹配行及其后面指定行数的内容
-B显示匹配行及其前面指定行数的内容
-C显示匹配行及其前后指定行数的内容

匹配指定模式的行(用法和grep相同)

#要查找文件中匹配指定模式的行,可以使用以下命令:
egrep '模式' 文件
#例如,要在文件 regular_express.txt 中查找包含字符串 "good" 的行,可以运行以下命令:
[root@node-135 yurq]# egrep 'good' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M

忽略大小写匹配(用法和grep相同)

如果要忽略模式的大小写,可以使用 -i 选项。例如:

[root@node-135 yurq]# egrep -i 'GOOD' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M

反向匹配(用法和grep相同)

要输出不匹配指定模式的行,可以使用 -v 选项。例如:

[root@node-135 yurq]# egrep -iv 'GOOD' regular_express.txt
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.

显示行号(用法和grep相同)

要显示匹配行的行号,可以使用 -n 选项。例如:

[root@node-135 yurq]# egrep -n 'good' regular_express.txt
1:"Open Source" is a good mechanism to develop programs.
9:Oh! The soup taste good.^M

递归搜索目录(用法和grep相同)

要在目录及其子目录下的所有文件中递归搜索匹配的行,可以使用 -r 选项。例如:

[root@node-135 yurq]# egrep -r 'good' .
./regular_express.txt:"Open Source" is a good mechanism to develop programs.
./regular_express.txt:Oh! The soup taste good.^M
./regular_express.txt.bak:"Open Source" is a good mechanism to develop programs.
./regular_express.txt.bak:Oh! The soup taste good.^M

匹配整词(用法和grep相同)

要仅匹配单词的完整匹配,可以使用 -w 选项。例如:

[root@node-135 yurq]# egrep -w 'good' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M

统计匹配行数(用法和grep相同)

要统计匹配到的行数,可以使用 -c 选项。例如:

[root@node-135 yurq]# egrep -c 'good' regular_express.txt
2

显示匹配行及其上下文内容(用法和grep相同)

要显示匹配行及其前后指定行数的内容,可以使用 -A、-B 和 -C 选项。例如:

[root@node-135 yurq]# egrep -i -A2 -B2 'good' regular_express.txt
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
--
Her hair is very beauty.^M
I can't finish the test.^M
Oh! The soup taste good.^M
motorcycle is cheap than car.
This window is clear.
[root@node-135 yurq]# egrep -i -C2 'good' regular_express.txt
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
--
Her hair is very beauty.^M
I can't finish the test.^M
Oh! The soup taste good.^M
motorcycle is cheap than car.
This window is clear.

9.2 egrep和grep的区别

egrep和grep是Linux命令行中最常用的文本搜索工具,它们的功能有很大的相似性,但也有一些明显的不同之处,这些不同之处会影响到它们的使用方式。下面就从功能、参数、应用场景等角度来探讨egrep与grep的区别。

  • 功能方面:grep是一种强大的文本搜索工具,它使用基础正则表达式来搜索文本,egrep是一种增强版的grep,它使用更多的正则表达式来搜索文本,比如可以使用更多的元字符,更多的重复模式,更多的可选项等。
  • 参数方面:egrep支持更多的参数,它比grep支持更多的选项,可以更灵活地处理文件;
  • 应用场景方面:egrep适用于需要精确搜索的场景,例如搜索某个字符串出现的次数,而grep则适用于简单的文本搜索。

延伸型正规表示法可以透过群组功能『 | 』来进行一次搜寻!那个在单引号内的管线意义为『或 or』啦! 是否变的更简单呢?此外,grep 预设仅支持基础正规表示法,如果要使用延伸型正规表示法,你可以使用 grep -E , 不过更建议直接使用 egrep !直接区分指令比较好记忆!其实 egrep 与 grep -E 是类似命令别名的关系啦!

熟悉了正规表示法之后,到这个延伸型的正规表示法,你应该也会想到,不就是多几个重要的特殊符号吗? ^_^y 是的~所以,我们就直接来说明一下,延伸型正规表示法有哪几个特殊符号?由于底下的范例还是有使用到 regular_express.txt ,不巧的是刚刚我们可能将该文件修改过了 @_@,所以,请重新下载该文件来练习喔!

9.3 延伸型的正规表示法的特殊字符

RE 字符意义与范例
+意义:重复『一个或一个以上』的前一个 RE 字符
范例:搜寻 (god) (good) (goood)… 等等的字符串。 那个 o+ 代表『一个以上的 o 』所以,底下的执行成果会将第 1, 9, 13 行列出来。
egrep -n 'go+d' regular_express.txt
?意义:『零个或一个』的前一个 RE 字符
范例:搜寻 (gd) (god) 这两个字符串。 那个 o? 代表『空的或 1 个 o 』所以,上面的执行成果会将第 13, 14 行列出来。 有没有发现到,这两个案例( ‘go+d’ 与 ‘go?d’ )的结果集合与 ‘go*d’ 相同?想想看,这是为什么喔! ^_^
egrep -n 'go?d' regular_express.txt
|意义:用或( or )的方式找出数个字符串
范例:搜寻 gd 或 good 这两个字符串,注意,是『或』! 所以,第 1,9,14 这三行都可以被打印出来喔!那如果还想要找出 dog 呢?
egrep -n 'gd|good' regular_express.txt
egrep -n 'gd|good|dog' regular_express.txt
()意义:找出『群组』字符串
范例:搜寻 (glad) 或 (good) 这两个字符串,因为 g 与 d 是重复的,所以,我就可以将 la 与 oo 列于 ( ) 当中,并以 | 来分隔开来,就可以啦!
egrep -n 'g(la|oo)d' regular_express.txt
()+意义:多个重复群组的判别
范例:将『AxyzxyzxyzxyzC』用 echo 叫出,然后再使用如下的方法搜寻一下!echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
上面的例子意思是说,我要找开头是 A 结尾是 C ,中间有一个及以上的 “xyz” 字符串的意思~

()+示例,可以看到只能完整匹配xyz的一个及以上

[root@node-135 yurq]# echo 'AxyzxyzxyzxyzC' | egrep 'A(xyz)+C'
AxyzxyzxyzxyzC
[root@node-135 yurq]# echo 'AxyzC' | egrep 'A(xyz)+C'
AxyzC
[root@node-135 yurq]# echo 'AxyzxyzxyzxyzC' | egrep 'A(x)+C'
[root@node-135 yurq]# echo 'AxyzxyzxyzxyzC' | egrep 'A(yzx)+C'
[root@node-135 yurq]#

另外,要特别强调的是,那个 ! 在正规表示法当中并不是特殊字符, 所以,如果你想要查出来文件中含有 ! 与 > 的字行时,可以这样:

grep -n '[!>]' regular_express.txt

这样可以了解了吗?常常看到有陷阱的题目写:『反向选择这样对否? '[!a-z]'?』, 呵呵!是错的呦~要 '[^a-z]' 才是对的!

匹配重复字符(用法和grep不同)

要匹配重复出现的字符,可以使用 *、+ 或 ? 符号。例如,要匹配重复出现的字母 “o”,可以运行以下命令:

egrep 'o*' example.txt   # 匹配0个或多个"o"
egrep 'o+' example.txt   # 匹配1个或多个"o"
egrep 'o?' example.txt   # 匹配0个或1个"o"

匹配分组模式(用法和grep不同)

要匹配分组模式,可以使用小括号 ()。例如,要匹配 “good” 或 “glad”,可以运行以下命令:

[root@node-135 yurq]# egrep 'g(oo|la)d' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M
The world <Happy> is the same with "glad".

匹配’或’模式(用法和grep不同)

[root@node-135 yurq]# egrep 'good|glad' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M
The world <Happy> is the same with "glad".

匹配重复群组(用法和grep不同)

g和d之间仅能出现o

[root@node-135 yurq]# egrep 'g(o)+d' regular_express.txt
"Open Source" is a good mechanism to develop programs.
Oh! The soup taste good.^M
Oh! My god!

该系列目录 --> 【BASH】回顾与知识点梳理(目录)

http://www.yayakq.cn/news/690524/

相关文章:

  • 建站网站和维护需要会什么织梦网站模板怎么安装
  • 网站上全景云台怎么做的活动策划网站源码
  • 徐州建设局网站安全证代做ppt网站
  • 苏州 营销型网站 高端网站h5页面制作网站免费
  • 购物商场网站开发过程详细说明设计公司企业画册
  • 王晴儿 网站建设烟台做网站建设电话
  • wordpress谷歌地图插件怎么用中山搜索引擎优化
  • 通过骗子网站能找到其服务器吗学做川菜下什么网站
  • 企业网站建设策划书标准版win7怎么更新wordpress
  • 外贸业务怎么利用网站开发客户网络运营怎么学
  • 三亚房地产网站制作网站建设的知识
  • 建设职业注册中心网站沈阳网站建设 房小二
  • 网站全站出售c2c网站名称和网址
  • iis本地网站怎么在百度上发布自己的信息
  • 流量统计网站推广法购物网站建设价位
  • 安徽网站建设推广黄骅港站
  • 交互做的不好的网站金融公司网站建设模板下载
  • 网站建设实训报告建议住房和城乡建设部网站事故快报
  • seo 成功网站专做负面的网站
  • 网站建设分金手指排名四在线制作电子简历
  • 周口市住房和城乡建设局网站网站建设浙江
  • 网站做的好赚钱吗网站建设功能设计
  • 单页面淘宝客网站免费版个人简历
  • 济南网站优化哪里做的好网站优化公司谷歌优化
  • 网站开发语言选择WordPress怎么开启rest
  • 网站版式设计江宁城乡建设局网站
  • 毕业设计网站代做多少钱网站开发公司需要哪些资质
  • 购物网站开发大纲做网站的费用计入哪个科目
  • 企业网站建设标准wordpress每页显示文章
  • 桂林旅游网官方网站张家港网站推广