c#使用正则表达式获取TR中的多个TD_Linux之正则表达式

ebb477b5dbb40789bb07a7f9b7ef91e3.png

ed7a43294d3b2a09ba08ff97f4f119d2.gif

什么是正则表达式?

简单地说,正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理操作,正则表达式通过一些特殊符号的辅助,可以让用户轻易地完成【查找、删除、替换】某特定字符串的处理过程。

正则表达式基本上是一种**【表示法】**,只要程序支持这种表示法,那么该程序就可以用来作为正则表达式的字符串处理。

正则表达式的字符串表示方式依照不同的严谨度分为:基础正则表达式、扩展正则表达式。

用途:邮件服务器

注意:正则表达式与通配符是完全不一样的东西,因为【通配符代表的是bash操作接口的一个功能】,但是正则表达式则是一种字符串处理的方式。使用正则表达式的时候,需要特别注意当时环境的语系,否则可能会发现选取的结果不合人意。

一、基础正则表达式

1、符号的含义“ [:alnum:] ”代表英文大小写字符及数字,亦即 0 ~ 9、A ~ Z、a ~ z“ [:alpha:] ”代表任何英文大小写字符,亦即 A ~ Z、a ~ z
“ [:blank:] ”代表空格键与[Tab]键
“ [:cntrl:] ”代表键盘上面 控制键,包括CR、LF、Tab、Del“ [:digit:] ”代表数字,亦即 0 ~ 9
“ [:graph:] ”代表空格符以外的所有按键“ [:lower:] ”代表英文小写字符,亦即 a ~ z
“ [:print:] ”代表任何可以被打印出来的字符
“ [:punct:] ”代表标点字符,亦即 " ’ ? ! ; : # $“ [:upper:] ”代表英文大写字符,亦即 A ~ Z
“ [:space:] ”代表任何会产生的空白的字符,包括空格、Tab键、CR等
“ [:xdigit:] ”代表十六进制的数字类型

案例一:查看a.txt文件中所有含有数字的行
语法:cat a.txt | grep '[[:digit:]]'4295d786a811b22ff9aafd0578b2a524.png2、行首字符 ’ ^ ’ 与行为字符 ’ $ ',“ ^ ”在字符集合符号([ ])中是表示反向,在外面表示定位在行首的意思
案例二:列出 /bin 目录下所有以d开头的文件1e4194392a34c8218e26ff3a0313cb4a.png3、任意一个字符“ . ”表示【一定有一个任意字符】
“ * ”表示【重复前一个字符0次或N次】

注意:【.*代表零个或者多个任意字符】

案例三:获取 /bin 目录下以a开头h结尾且位数为四位的目录
语法:ls /bin | grep '^a…h$'9a3f8fc1274e137b61403a4a12c7c315.png案例四:获取 /bin 目录下最少含有两个连续ee的目录
语法:ls /bin | grep ‘eee*’4dac9ea5fd4ef7d31cd24d8811852092.png4、限定连续RE字符范围{}
如果想要限制次数获取的范围,可以使用{},但是因为 { 和 } 在shell中是有特殊意义的,所有需要转义符 \ 来使它们有意义。

案例五:获取 /bin 目录下含有四个字符的目录
语法:ls | grep '^.{4} $'857ff00cabaefb15d62e0fa7d6dd4fe7.png5、sed工具(重点)
当我们分析日志文件的时候,绝大部分需要分析关键词的使用、统计等,可以使用sed工具来实现。sed本身也是一个管道命令,可以分析标准输入。而且sed还可以将数据进行替换、删除、新增、选取特定行等功能。

语法:sed [-nefr] [操作]
“ -n ”表示只有经过sed特殊处理的那一行才会被列出
“ -e ”表示直接在命令行模式上进行sed的操作编辑
“ -f ”表示直接将sed的操作卸载一个文件内
“ -r ”表示使用扩展性正则表达式(默认是基础正则表达式)
操作说明:[n1,n2] function
“ n1,n2 表示行号 ”
“ a ”表示新增,后面可以接字符,这些字符会显示在新的一行
“ c ”表示替换,后面接字符,这些字符会替换n1,n2之间的行
“ d ”表示删除
“ i ”表示插入,后面接字符,这些字符会在新的一行出现
“ p ”表示打印
“ s ”表示可以直接进行替换操作

案例六:列出a.txt文件并打印行号,同时删除2-5行的内容7b1f6ca4e4c5367e7d4a002cf645d41a.png如果需要删除第3行开始到最后一行,可以使用 nl a.txt | sed '3,d ′ , d',d, 表示最后一行

案例七:替换a.txt文件中第一行的内容为Hello World
语法:nl a.txt | sed '1c Hello World’

c5bc5e7925ce3917f9613de8ca5a3c62.png部分数据的查找并替换的功能(重点):
语法:sed 's/要被替换的字符/新的字符/g’

案例八:获取 /etc/man_db.conf 中MAN存在的几条数据,但是含义#在内的注释不
要,而且空白行不要
语法:*cat /etc/man_db.conf | grep ‘MAN’ | sed '/#.s//g’ | sed ‘/^$/d’

二、扩展正则表达式

符号含义“ + ”表示重复【一个或一个以上】的前一个RE字符
“ ? ”表示【零个或一个】前一个RE字符
“ | ”表示【或(or)的方式找出字符串】
“ () ”表示找出【群组】字符串
“ ()+ ”表示多个重复群组的判别

三、文件的格式化与相关处理

1、格式化打印
语法:printf ‘打印内容’ 实际内容
特殊格式:
“ \a ”表示警告声音输出
“ \b ”表示退格键
“ \f ”表示清除屏幕
“ \n ”表示输出新的一行
“ \r ”表示回车按键
“ \t ”表示水平的tab键
“ \v ”表示垂直的tab键
“ \xNN ”表示NN为两位数,可以转换数字成字符

2、数据处理工具:awk
sed常常用于一整行的处理,awk更倾向于一行当中分成数个字段来处理。awk主要处理每一行的字段内的数据(字段为最小的处理单位),而默认的字段的分隔符为空格键或者Tab键。
语法:awk ‘条件类型1{操作1} 条件类型2{操作2}’

案例九:列出最后5位登录用户并打印出第一个、第三个字段
语法:last -n 5 | awk ‘{print $1 “\t” $3}’

2349eaf14d0ba4170e24218860a31e93.png

四、文件比对工具

1、比对两个文件之间的差距
语法:diff [-bBi] 文件1 文件2
“ -b ”表示忽略一行当中,仅有多个空白的差异
“ -B ”忽略空白行的差异
“ -i ”忽略大小写f1329e666bf692600bcc75e8bd0f174c.png“ 12,14d11 ”表示左边第12,14行被删除(d)掉了,基准是右边的第11行
“ < ”表示左边的内容
“ > ”表示右边的内容

2、cmp(主要用于对比文件,主要利用字节单位对比,也可以对比二进制文件)
语法:cmp 文件1 文件2627dc22c2326cb2c8f02f95d568cd63f.png

————————————————


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_44796093/article/details/109097310

【凡本网注明来源非建策科技的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如需删除请私信,严禁其他用途。】

如果您对技术帖有任何疑问,请联系官方邮箱jcit@jiancenj.com

欢迎广大学员踊跃投稿,一经录用,有稿费酬谢

END

vlan技术的微妙之处

组播静态路由对RPF机制的实现

如何从服务器处获取地址

Linux系统文件目录管理常用命令

00ffd6b7452211b42a3d657328468ea0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值