本文涵盖的是主要的正则表达式,和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 #用来指定列分隔符
总结
这里简简单单的展示了一些正则表达式和文本三剑客的常用选项,可以多多练习,掌握它们,谢谢观看,一个普通人,祝您生活愉快!
1724

被折叠的 条评论
为什么被折叠?



