shell中grep和正则表达式怎么用
admin
2023-07-27 04:00:04
0次

        1、匹配开头和结尾字符

            格式:grep { ^string | string $ } filename

        示例:grep ^[a-z]tr filename;grep tr$ filename

shell中grep和正则表达式怎么用

        我们看到 ^[a-z] 能匹配到以字母 a-z 开头的字符,o$ 能匹配到以字母 o 结尾的字符。

        2、匹配整个单词

            格式:grep '\btom\b' 2.txt

shell中grep和正则表达式怎么用

        我们看到能匹配到 tom 的整个单词。

        3、? + 和 * 的用处

            用处:grep { ... | ? | .* } filename

        . 匹配单个字符能匹配空格; * 匹配任意字符或字符串的重复多次; .+ 字符必须出现 1 次; .? 字符出现 0 次或 1 次。

        示例:a> . 的匹配;b> * 的匹配。注意:grep 不支持 +  ? 元字符 必须要加上 -E 选项

shell中grep和正则表达式怎么用

        我们看到在 aa* 的时候出现了这么多,它的意思是匹配 a 字符后面的任意多个;在直接 n.+ 的时候并没有出现 n 开头的字符,必须加上 -E 才能显示出;那么 .+ 和 .? 的区别是什么呢? .+ 是全部匹配出,而 .? 只是匹配出字符 n 后面紧跟的一个字符。

        下来看看 Perl 的正则表达式 -P:c> .* 的贪婪匹配;d> .*? 的惰性匹配。

shell中grep和正则表达式怎么用

        我们看到他们的区别是贪婪匹配是全部匹配到整个字符串,而惰性匹配只是匹配到 tom 这个字符串。

        4、grep 的标签

            格式:grep '\(str\)\(\)\(\)[other]\1' filename

shell中grep和正则表达式怎么用

        我们看到在匹配 tom 和 hello 后,再加两个字符,便成功的匹配到了前两行的字符串。

        5、grep 中的 pattern 搜索

            格式1:grep ‘[str]\{2\}’ filename;搜索文本中包含 2 次 tom 的行

shell中grep和正则表达式怎么用

            格式2:grep ‘[str]\{1,\}’  filename;搜索文本中至少包含 1 次 tom 的行

shell中grep和正则表达式怎么用

            格式3:grep ‘[str]\{1,3}’ filename;搜索文本中出现 1~3 次包含 tom 的行

shell中grep和正则表达式怎么用

            以tom开头,连续出现1~3次的行

shell中grep和正则表达式怎么用

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...