正则表达式整理笔记

    正则表达式(regular expression,RE),是一种字符模式,用于在查找过程中匹配指定的字符。能被vim,sed,awk,grep调用。

    元字符

1、^行首定位符

grep "^root" /etc/psaawd

 查找passwd中以root开头的行

2、$行尾定位符

grep "day$" 1.txt

3、.匹配任意单个字符

grep "a.c" 1.txt

搜索出所有的a什么c

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

grep "abc*" 1.txt

搜索出ab,c可带可不带,ab后面也可以有其他字符

5、.*任意多个字符

所有字符都会出现

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

grep "[Dd]og" 1.txt

搜索出dog和Dog

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

grep "[1-9]days" 1.txt

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

grep "[^123]days" 1.txt

排除1day,2day,3day

9、\转意符,转去右侧符号的意思

10、\<词首定位符

grep "\<love" 1.txt

找词首是love的

11、\>词尾定位符

grep "love\>" 1.txt

12、()匹配稍后使用的字符的标签。(把括号里的内容作为一个整体,方便调用)

:% s/\(.*\)/#\1/

该命令用于加注释

%:应用于所有

s///:替换

.*:所有字符

():将括号里的内容作为整体,等待引用。括号前加\进行转义

\1:引用第一个可匹配的字符

13、x\{m\}字符x出现m次

grep "o\{3\}" 1.txt

查找出现3次o的

14、x\{m,\}字符x出现m次以上

15、x\{m,n\}字符x出现m到n次

扩展正则表达式

16、+匹配前导符1到n次

17、?匹配前导符0到1次

18、a|b匹配a或者b

grep

grep:基本正则

egrep:支持扩展正则

fgrep:不支持正则

sed

Stream EDitor:流编辑

sed是一种在线的、非交互式的编辑器,它一次处理一行内容。处理时,把处理的行存储在临时缓冲区,处理完后,把内容送到屏幕。接着处理下一行,直到处理结束。文件内容并没有改变,除非使用重定向存储输出。

格式:

1、sed 选项 命令 文件

2、sed 选项 -f 脚本 文件

汇总示例:

1、删除命令:d

sed -ri '/root/d' passwd.txt  
sed -ri '3d' passwd.txt   #删掉第三行
sed -ri '3{d}' passwd.txt   #删掉第三行
sed -ri '3{d;}' passwd.txt   #删掉第三行,后面可接多命令
sed -ri '3,$d' passwd.txt   #删掉第三行到最后一行

-r支持正则,-i写入到文件,不加i输出到屏幕上,但是文件不变。//中间的内容是选定的范围,d表示删除。

2、替换命令:s

sed -ri 's/root/aofa/' passwd.txt
sed -ri 's/^root/aofa/' passwd.txt
sed -ri 's/root/aofa/g' passwd.txt    #g代表替换全局,所有的root都换掉,不加就只替换每行第一个
sed -ri 's/root/&s/' passwd.txt     #&是前面找到的字符,这里代表root替换成roots

3、整行替换:c

sed -ri '2caaaaaaa' passwd

第2行换成aaaaaaa

sed实战:

1、删除配置文件中的注释行

sed -ri '/^#/d' /etc/vsftpd/vsftpd.conf

2、修改文件

sed -ri '/SELINUX=/cSELINUX=disabled' /etc/selinux/config

3、给文件添加注释

sed -ri '1,10s/^/#/ 1.txt

awk

作用:把文件按列拆分

语法:awk 选项 '命令' 文件名

-F:定义输入字段分隔符

BEGIN{}:处理前

{}:处理时

END{}:处理后

内部变量:

$0:整行;$1:第一段;$2:第二段......

FS:输入字段分隔符(默认空格)

OFS:输出字段分隔符

RS:输入记录(行)分隔符

ORS:输出记录(行)分隔符

FNR:多文件独立编号

NR:多文件汇总编号

NF:字段总数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值