Linux学习笔记(7)正则表达式
Regular Expression
正则表达式
是处理字符串的方法,以行为单位进行字符串的处理操作,通过一些特殊付好的辅助可以轻易的完成查找删除操作。
语系的问题 LANG=C语系,不同语系的语法规则不一样,需要特别注意。
1.正则表达式与grep
[:alnum:]//代表英文大小写字符和数字0-9 a-z A-Z
[:alpha:]//代表任何英文字母大小写 a-z A-Z
[:blank:]//代表空格和TAB
[:cntrl:]//键盘上的控制键ctrl tab等
[:digit:]//代表数字 0-9
[:graph:]//除了空格以外的所有按键
[:lower:]//代表小写字母
[:print:]//代表任何可以被打印出来的字符
[:punct:]//代表标点符号"!'?;:#$"
[:upper:]//代表大写字母
[:space:]//代表会产生空白的字符
[:xdigit:]//16进制数字及字符
1.查找特定字符串
grep -n 'the' regular_express.txt//-n 是显示行号 关键词自动高亮
//-i忽略大小写 -v反向选择 即不含the的
2.利用中括号[]查找
grep -n 't[ae]st' regular_express.txt
不管中括号中有几个字符都只代表了一个字符
grep -n '[^g]oo' regular_express#[^g]反向选择 不想要g开头的出现
#一定要记得制表符是在中括号里面
grep -n '^[a-z]oo' regular_express#可用^[]来反向选择
也可以使用如下代码
grep -n '[^[:lower:]] regular_express#相当于递归即就是[^a-z]
3.行首与行尾字符
grep -n '^the' regular_express#''中加制表符表示希望查找关键词
#在句首出现的句子
4.任意字符. 和 重复字符’*’
grep -n 'g..d' regular_express#..可以代替任何字符
grep -n 'oo*' regular_express #*意味重复0个或一个以上的o字符
#因此o*意为 拥有空字符或一个以上的o
#oo*拥有至少一个o
#ooo*拥有至少两个o
5.限定连续字符数量的{}
grep -n 'go\{2,5\}g' regular_express#用\来无效化{}
2.sed工具
sed也是管道命令
sed [-nefr] [n1,n2 function] [文本文件]
-n #安静模式 在一般语法中会全部输出到屏幕上 但安静模式下只有被处理
#的那一行才会输出
nl regular_express |sed '2,5d'#删除2-5行 并把删除后的文件打印在屏幕上
function
a#新增 a后可以接字符 并插入到下一行
sed '2a drink tea' regular_express#这行字插入到第三行
sed '2a drink tea\
drink bear'#多行插入的方法
c#替换 c后接字符替换n1 n2中间的行
d#删除
i#插入 i后接字符 插入到上一行
p#打印 将某个选择的参数打印出来
s#替换
3.扩展正则表达式
+ #意义:一个或一个以上的前一个字符
egrep -n 'go+d' regular_express#o+代表一个以上的o? #意义:零个或一个的前一个字符
egrep -n 'go?d' regular_express#代表空的或一个o| #用或or的方式找出数个字符串
egrep -n 'gd|good' regular_express#找gd和good
egrep -n 'gd|good|dog' regular_express#找gd和good和dog()#找出群组字符串
egrep -n 'g(la|oo)d' regular_express
4.文件的格式化和相关处理
1.awk数据处理工具
awk的后续操作都是以单引号括住的,需要用print打印时,非变量部分需要用双引号括住。(print默认输出完换行,printf为输出后不换行)
awk '条件类型1{操作1} 条件类型2{操作2} ...' filename
取出后五条登录信息,用管道传输给awk,在屏幕上打印第一个变量和第三个变量,中间以一个tab间隔。
NF #每一行拥有的字段总数
NR #目前awk所处理的是第几行数据
FS #目前的分隔字符
2.diff和cmp文件对比
diff [-bBi] from-file to-file
from-file #文件名,作为原始文件
to-file #目标文件
-b#忽略一行中多个空白的差异
-B#忽略空白行的差异
-i#忽略大小写差异cmp#利用字节单位去对比
Linux学习笔记(7)正则表达式相关推荐
- Linux学习笔记10
Linux学习笔记10 Linux学习笔记10 正则表达式 源码包约定目录 Shell脚本约定目录 Shell脚本的创建与执行 date命令 同步时间 Shell脚本预设变量 与用户交互 数学计算 S ...
- Linux学习笔记(四):正则表达式
Linux学习笔记(四):正则表达式 一.正则表达式 grep命令 二.原义字符.元字符 任意字符 锚点 中括号表达式 三.POSIX字符集 环境变量 LANG 四.扩展的正则表达式 Alternat ...
- (零)我为什么要写Linux学习笔记?
我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...
- Linux学习笔记8
Linux学习笔记8 Linux学习笔记8 DHCP分配IP地址 打印或控制内核环缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩 ...
- LINUX学习笔记:31个常用LINUX命令和相关解释
LINUX学习笔记三: 最近在带新同事,是一个刚入行的萌新,对于linux不是很熟悉,问我怎么来学习. 所以今天接着之前的部分,继续分享一些linux学习资料.有需要的点点保存,没有跳过呗.PS:内容 ...
- *Linux学习笔记
*Linux学习笔记__20161222usst湛恩 所有的荣誉和赞美都献给上帝,让一切成为可能! 1. 文件系统 Linux下所有设备都是文件,采用树形文件管理系统,将文件存储在单个目录结构中(虚拟 ...
- Kali Linux学习笔记—Web渗透(1)
Kali Linux学习笔记-WEB渗透 侦察 Httrack 扫描 Nikto vega skipfish w3af Arachni OWASP_ZAP 必须掌握 Burpsuite 必须掌握 实验 ...
- Linux 学习笔记(六):Linux
预期学习目标 CentOS的安装 相关命令的学习 脚本的编写 定时任务的编写 vim的学习 系统设置 项目部署 项目权限设置 确认 SELinux 的状态 [root@centos7 ~]$ /usr ...
- Cty的Linux学习笔记(六)
Linux学习笔记--第六篇 (声明:该笔记只作为学习记录及参考) 命令(command): chattr:格式为:chattr [+-=][Asaci][文件名或者目录名] +:增加 -:减少 ...
- Linux命令篇 linux命令大全简洁明了 linux学习笔记
Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...
最新文章
- 华为被上汽狂DISS:智能驾驶时代车企呼唤“主权”?
- Ubuntu Server 上在安装Nginx时执行./confgiure后提示:C compiler cc is not found
- 继电器rc吸收电路取值_一文读懂继电器的工作原理以及驱动电路
- (原) ora-12705 cannot access nls data files or invalid environment specified
- 反思O2O演化的三个时代,大数据与智能化才是未来所在
- oracle中游标的使用
- linux之shell脚本管理(一)
- 渗透测试web未设置http头 Strict Transport Security
- Linux学习笔记13
- 【学习笔记】【C语言】进制
- Linux学习笔记007---Centos7中配置静态ip
- android 恢复出厂设置流程
- 概念梳理:C++中iostream头文件和命名空间的基础介绍和拓展内容
- vmware 无人参与应答文件包含的产品密钥无效
- JS实现页面复制文字时自动加版权
- C++——队列应用——显示二项式系数
- 克里斯蒂安贝尔_克里斯蒂安贝尔现身机场,身材瘦到认不出来,蝙蝠侠又开始减重了...
- Windows自带虚拟化服务工具Hyper-V学习了解和实操
- 简洁明了的插值音频重采样算法例子 (附完整C代码)
- 苹果CEO库克: 请无所畏惧,做最不愿接受现状的人丨2018年毕业典礼演讲