加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式

发布时间:2020-12-14 06:11:49 所属栏目:百科 来源:网络整理
导读:正则表达式 正则表达式是用来处理字符串的,可以用一些特定字符来描述字符串里字符出现的规则,从而匹配,提取或者替换符合某一个规则的字符串。 通过特殊字符进行匹配一段字符串 正则表达式: 标准字符与元字符(特殊字符)构造 grep可以使用基础正则表达式
正则表达式

正则表达式是用来处理字符串的,可以用一些特定字符来描述字符串里字符出现的规则,从而匹配,提取或者替换符合某一个规则的字符串。

通过特殊字符进行匹配一段字符串

正则表达式:

标准字符与元字符(特殊字符)构造

grep可以使用基础正则表达式,处理行

[]内为"或"只能出现一个

grep -n ‘sh[io]rt‘ test.txt //-n显示行号

[^w]

grep -n ‘[^w]oo‘ test.txt //匹配三个字母,不是woo就可以

grep -n ‘[^a-z]oo‘ test.txt //oo前不是小写字母

grep -n ‘[0-9]‘ test.txt //匹配单一数字

grep -n ‘^[^a-Z]‘ test.txt //不已a-Z开头的行

"."表示匹配一个任意字符

grep -n ‘w..d‘ a.txt

"":号前面的字符出现0次或多次

grep -n ‘abc*‘ a.txt //可以匹配 ab abc abcc abcc……

".*" :匹配任意长度任意字符

grep -n "w.*p" a.txt

{n}:大括号前字符出现n次 {n,m}:大括号前的字符出现n到m次 {n,}:至少出现n次

grep -n "o{2,5}" a.txt // ""表示转义

扩展正则表达式

"+":+号前字符至少出现1次

egrep -n "wo+d" a.txt //匹配最小为 wod

"?":问号的字符出现一次或0次

egrep -n "bes?t" a.txt

"|":表示"或"

egrep "of|is|on" a.txt

():以|进行分割逐个匹配

egrep "t(a|e)st" a.txt

()+:括号内的一串字符出现一次或多次

egrep "A(xyz)+C" a.txt

sed文本编辑工具:在过滤的时候进行更改文件(常用于shell脚本)

-n 显示修改后的行

sed -n ‘3,5p‘ test.txt //3到5行 p打印出来

打印奇数行

nl test.txt | sed -n ‘p;n‘ //n下一行

打印偶数行

nl test.txt | sed -n ‘n;p‘

从第10行开始打印

nl test.txt | sed -n ‘10,${p;n}‘

打印包含the的行 正则表达式用//括起来

sed -n ‘/the/p‘ test.txt

从第四行开始打印包含the的行

sed -n ‘4,/the/p‘ test.txt

=表示打印行号

sed -n ‘/the/=‘ test.txt

以PI开头

sed -n ‘/^PI/p‘ test.txt

精确匹配一个单词

sed -n ‘/&;wood&;/p‘ test.txt

删除包含cross的行

nl test.txt | sed ‘/cross/d‘

删除以.结尾的行

sed ‘/.$/d‘ a.txt

替换

sed ‘s/the/THE/‘ a.txt

在每行的前面加入一个#号

sed -i ‘s/^/#/‘ b.txt

删除第三行的#号

sed -i ‘3s/#//‘ b.txt

剪切the行,粘贴到最后一行

sed ‘/the/{H;d};$G‘ a.txt //H 复制 G 粘贴

过滤并保存到abc.txt

sed ‘/the/w abc.txt‘ test.txt //w保存

追加abc.txt里的内容追加到每个the行的下面

sed ‘/the/r abc.txt‘ test.txt //r追加

awk文本编辑工具

sed逐行进程操作,awk可以基于段进行操作

以":"进行分割,打印第1段和第3段 逐行操作

awk -F ‘:‘ ‘{print $1 $3}‘ /etc/passwd //默认以空格进行分割

awk内建变量

FS:分割符,默认为空格

NF:正在操作的行分了几个字段

NR:当前操作的行号

$0:当前操作行的内容

$n:当前操作的是第几段

FILENAME:操作的文件名

RS:基于什么判断行数,n回车换行

打印1~3行

awk ‘NR==1,NR==3{print}‘ test.txt

打印行号大于等于1小于等于3的行

awk ‘NR>=1&&NR<=3 {print}‘ test.txt

统计文件内以/bin/bash结尾的行

awk ‘BEGIN {x=0}; //bin/bash$/{x++};END {print x}‘ /etc/passwd

感谢阅读

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读