【精选】shell脚本 您所在的位置:网站首页 shell脚本生成xml文件 【精选】shell脚本

【精选】shell脚本

2023-10-25 10:06| 来源: 网络整理| 查看: 265

正则表达式 正则表达式的作用前言案例:使用^和$判断用户输入的是否是数字 基础正则表达式元字符基础正则表达式元字符案例 扩展正则表达式元字符扩展正则表达式元字符案例 正则表达式元字符综合案例三剑客grep详解grep的分类grep的返回值grep的参数egrep示例

正则表达式的作用 正则表达式是一种字符模式,用于在查找过程中匹配指定的字符。它将匹配被查找的的行中任何位置出现的相同模式,在正则表达式中,元字符是最重要的概念正则表达式能够被vim、sed、grep调用正则表达式运用场景 mysql、oracle、php、Python、Apache、Nginx… 前言案例:使用^和$判断用户输入的是否是数字 read -p "输入数字才能退出:" num if [[ $num =~ ^[0-9]+$ ]] #我们需要掌握的就是正则表达式中的各种符号运用 then echo "您输入的是数字" else echo "您输入的不是数字" fi 基础正则表达式元字符 元字符作用\转义字符,用于取消特殊符号的含义,如:\!、\n等^匹配字符串的开始位置,如:^world匹配以world开头的行$匹配字符串的结束位置,如:world$匹配以world结尾的行.匹配除\n(换行)之外的任意一个字符*匹配前面的子表达式0次或者多次[list]匹配list列表中的一个字符,如:[0-9]匹配任一位数字[^list]匹配不在list列表中的一个字符,如:[^0-9]匹配任意一位非数字字符\ {n \ }匹配前面的子表达式n次,如:[0-9] \ {2 \ }匹配两位数字\ {n, \ }匹配前面的子表达式不少于n次,如:[0-9]{2,\ }表示两位及两位以上数字\ {n,m \ }匹配前面的子表达式n到m次,如:[a-z]\ {2,3 \ }匹配两到三位的小写字母 元字符是一类字符,他们表达的是不同于字面本身的含义中括号两边都不能空格 基础正则表达式元字符案例

一、^ 行首定位符

[root@pakho ~]# grep "^abc" zzbds.txt abc

二、$ 行尾定位符

[root@pakho ~]# grep "x$" zzbds.txt zabbix

三、. 匹配任意单个字符

[root@pakho ~]# grep "a.c" zzbds.txt abc javascript adc

四、* 匹配前导符0到多次

*在字符右才有意义 修饰前方的字符 前方的字符叫前导符

[root@pakho ~]# grep "ab*" zzbds.txt zabbix abc kali javascript adc abcd abcde abcdef

五、.* 任意多个字符

为什么 *. 不好使因为 *是前导符

[root@pakho ~]# grep ".*" zzbds.txt zabbix abc kali centos linux ubuntu python docker k8s javascript

六、[ ] 匹配指定范围内的一个字符

[root@pakho ~]# grep "[lL]ove" zzbds.txt love Love [root@pakho ~]# grep "[ilL]ove" zzbds.txt love Love iove

七、[-]匹配指定范围内的一个字符,连续的范围

[root@pakho ~]# grep "[0-9]" zzbds.txt k8s 1ove [root@pakho ~]# grep "[a-z]ove" zzbds.txt love iove [root@pakho ~]# grep "[a-Z]ove" zzbds.txt love Love iove

八、[^] 匹配不在指定组内的字符

为什么会有数字的也被显示出来因为搜索命中了其他字符附带将数字带了出来

[root@pakho ~]# grep "[^0-9]" zzbds.txt zabbix abc kali centos linux ubuntu python docker k8s javascript shell adc abcd abcde abcdef love Love 1ove iove [root@pakho ~]# grep "[^a-z]ove" zzbds.txt Love 1ove

九、\ 用来转义元字符 (") ("") (\ ),脱意符

一般情况下都用 " " 尽量不去使用 " 和 \\ 只转意一个字符 转义右边的字符 [root@pakho ~]# grep "\.ove" zzbds.txt .ove

十、\2}2{3}\. #两个五 三个二最后一个点 ^[ \t]*$ #0到多个空格或tab的行 ^# #以#开头的注释行 ^[ \t]*# #0到多个空格或者tab开头的注释行 :1,$ s/\([Oo]ccur\)ence/\1rence/ 三剑客grep详解 grep搜索指定的输入文件(如果没有指定文件,或者如果文件名中有一个连字符减号(-),则搜索标准输入)中的行包含与给定模式匹配的。默认情况下,grep打印匹配行。此外,还提供了两个变体程序egrep和fgrep。egrep与grep-E相同。fgrep与grep-F相同。直接调用因为不推荐使用egrep或fgrep,但提供它是为了允许依赖它们的历史应用程序不经修改地运行。 grep的分类 grepegrepfgrep grep的返回值 0 :表示成功1 :表示所提供的文件无法找到匹配的pattern2 :表示查找地点不对 在这里插入图片描述 grep的参数 grep -q :静默,常用于判断 [root@pakho ~]# grep -q "root" /etc/passwd [root@pakho ~]# echo $? 0 grep -v :取反 [root@pakho ~]# ps aux | grep ssh | grep -v grep grep -R:可以查看目录下的内容 [root@pakho ~]# grep 123 -R abc abc/1.txt:123 grep -o:只找到这个关键字就可以 [root@pakho ~]# grep -o "root" /etc/passwd root root root root root grep -B2:查看文件的前两行 在这里插入图片描述grep -A2:查看文件的后两行 在这里插入图片描述grep -C2:查看文件上下两行 在这里插入图片描述 egrep示例 #grep -E 或 egrep进行使用 egrep "NW" datafile.txt #查找文件内是否有NW egrep "NW" d*.txt #不知道文件名就想查找文件内有NW的文件 egrep "^n" datafile.txt #查找文件以n开头的行 egrep "4$" datafile.txt #查找以4结尾的行 egrep "TB Savage" datafile.txt #在文件中查找TB savage这个词组 egrep "5\.." datafile.txt #找5 5后面带一个点 点后面是任意字符 egrep "\.5" datafile.txt #找.5 egrep "^[we]" datafile.txt #找w或者e开头的行 egrep "[^0-9]" datafile.txt #除了数字都能找到 egrep "[A-Z][A-Z] [A-Z]" datafile.txt #查找大写字母大写字母 空格大写字母 egrep "ss*" datafile.txt #查找一个s和0至多个s egrep "[a-z]{9}" datafile.txt #查找一个小写字母出现9次 egrep "\



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有