小白自学自讲----正则表达式及文本三剑客

本文涵盖的是主要的正则表达式,和grep,sed,awk的主要用法,是我的笔记复盘,对您有帮助的话那最好啦,祝大家生活愉快!


提示:以下是本篇文章正文内容,下面案例可供参考

一、正则表达式

1,正则表达式是什么

简单来说,就是一种可以描述或者让命令更好的去匹配字符串的工具,目前主要有

基本正则表达式     扩展正则表达式   Perl 兼容正则表达式

三者主要区别是在语法方面,越往后语法就越简化了

2,正则表达式内容

特殊单字符(只匹配一个字符):

. (dot)——任意字符             /d(属于perl语法)——任意数字             /s(属于perl语法)——任意空白符

/w(属于perl语法)——任意字符下划线                [....] ——括号中内容选一

[^......]——非括号中的内容

量词(指代前方字符出现几次):

  *   ——0到多次                +  ——1到多次                ?——0到1次

{m,n} ——m到n次                {  ,n}——至多n次                {m,}——至少m次

分组引用(只看左括号来确定属于第几组):

()——分组                \num——第num组                \0 | &——指代全部内容

断言(规定行首行尾或词首词尾):

^——行首                $——行尾                \b  |  \<\>——单词边界

二、文本三剑客

1.grep

#仅展示常用选项功能,大家可以自行在终端测试
-o                #只输出匹配到的内容

-E                #使用扩展正则表达式

-P                #使用Perl兼容正则表达式

-v                #取反

-i                #不区分大小写

-n                #显示匹配到的行号

-r                #递归查询

-Anum             #显示匹配到的行之后num行

-Bnum             #显示匹配到的行之前num行

-Cnum             #显示匹配到的行前后num行

2.sed

主要形式:

sed                      选项                             处理动作                         文件

#sed的主要选项
-n                #不输出默认内容,常搭配处理动作p来使用

-r/E              #使用扩展正则表达式、

-i                #将修改内容保存到原文件

-i.bak            #将修改内容保存到原文件,并且将未修改的文件做备份
#sed常用处理动作
#作用范围  举个例子sed -n '2s@xxx@XXX@'  这个数字2就是作用范围
N                    #匹配第N行

N,M                  #匹配N到M行

/pattern/            #匹配/ /中单词所在行

#执行动作
p                    #打印匹配到的行

s                    #替换匹配到的文本

a                    #在匹配行后追加

i                    #在匹配行前追加

c                    #将匹配到的整行替换

d                    #删除匹配到的行

3.awk

主要形式:

awk                选项                        处理动作                        文件

#awk常见选项
#举个例子 awk -f ":" -v OFS "-----" 'NR==2{print $3}'  file
-v                #用来指定变量
#组成常用变量的基本单词
O(output)——输出

F(field)——列

R(record)——行

S(separator)——分隔符

N(number)——号
#常用变量
OFS——指定输出列分隔符

FS——指定列分隔符

NR——行号

NF——总列号

-f == -v FS      #用来指定列分隔符

总结

这里简简单单的展示了一些正则表达式和文本三剑客的常用选项,可以多多练习,掌握它们,谢谢观看,一个普通人,祝您生活愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值