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)正则表达式相关推荐

  1. Linux学习笔记10

    Linux学习笔记10 Linux学习笔记10 正则表达式 源码包约定目录 Shell脚本约定目录 Shell脚本的创建与执行 date命令 同步时间 Shell脚本预设变量 与用户交互 数学计算 S ...

  2. Linux学习笔记(四):正则表达式

    Linux学习笔记(四):正则表达式 一.正则表达式 grep命令 二.原义字符.元字符 任意字符 锚点 中括号表达式 三.POSIX字符集 环境变量 LANG 四.扩展的正则表达式 Alternat ...

  3. (零)我为什么要写Linux学习笔记?

    我对Linux有强烈的好奇心,兴趣:写学习笔记会让我有成就感:我记忆力实在不好.好吧,其实真正原因是:如果我能把自己学到的知识简明扼要的讲出来,写出来,那便证明我真的学懂了我想学的知识.没时间怎么办? ...

  4. Linux学习笔记8

    Linux学习笔记8 Linux学习笔记8 DHCP分配IP地址 打印或控制内核环缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩 ...

  5. LINUX学习笔记:31个常用LINUX命令和相关解释

    LINUX学习笔记三: 最近在带新同事,是一个刚入行的萌新,对于linux不是很熟悉,问我怎么来学习. 所以今天接着之前的部分,继续分享一些linux学习资料.有需要的点点保存,没有跳过呗.PS:内容 ...

  6. *Linux学习笔记

    *Linux学习笔记__20161222usst湛恩 所有的荣誉和赞美都献给上帝,让一切成为可能! 1. 文件系统 Linux下所有设备都是文件,采用树形文件管理系统,将文件存储在单个目录结构中(虚拟 ...

  7. Kali Linux学习笔记—Web渗透(1)

    Kali Linux学习笔记-WEB渗透 侦察 Httrack 扫描 Nikto vega skipfish w3af Arachni OWASP_ZAP 必须掌握 Burpsuite 必须掌握 实验 ...

  8. Linux 学习笔记(六):Linux

    预期学习目标 CentOS的安装 相关命令的学习 脚本的编写 定时任务的编写 vim的学习 系统设置 项目部署 项目权限设置 确认 SELinux 的状态 [root@centos7 ~]$ /usr ...

  9. Cty的Linux学习笔记(六)

    Linux学习笔记--第六篇 (声明:该笔记只作为学习记录及参考) 命令(command): chattr:格式为:chattr [+-=][Asaci][文件名或者目录名] +:增加    -:减少 ...

  10. Linux命令篇 linux命令大全简洁明了 linux学习笔记

    Linux命令篇 linux命令大全简洁明了 linux学习笔记 Linux 命令大全 文章目录 Linux 命令大全 一. 常用的基础命令 查看目录: 切换目录: 创建和删除: 拷贝和移动文件: 查 ...

最新文章

  1. 华为被上汽狂DISS:智能驾驶时代车企呼唤“主权”?
  2. Ubuntu Server 上在安装Nginx时执行./confgiure后提示:C compiler cc is not found
  3. 继电器rc吸收电路取值_一文读懂继电器的工作原理以及驱动电路
  4. (原) ora-12705 cannot access nls data files or invalid environment specified
  5. 反思O2O演化的三个时代,大数据与智能化才是未来所在
  6. oracle中游标的使用
  7. linux之shell脚本管理(一)
  8. 渗透测试web未设置http头 Strict Transport Security
  9. Linux学习笔记13
  10. 【学习笔记】【C语言】进制
  11. Linux学习笔记007---Centos7中配置静态ip
  12. android 恢复出厂设置流程
  13. 概念梳理:C++中iostream头文件和命名空间的基础介绍和拓展内容
  14. vmware 无人参与应答文件包含的产品密钥无效
  15. JS实现页面复制文字时自动加版权
  16. C++——队列应用——显示二项式系数
  17. 克里斯蒂安贝尔_克里斯蒂安贝尔现身机场,身材瘦到认不出来,蝙蝠侠又开始减重了...
  18. Windows自带虚拟化服务工具Hyper-V学习了解和实操
  19. 简洁明了的插值音频重采样算法例子 (附完整C代码)
  20. 苹果CEO库克: 请无所畏惧,做最不愿接受现状的人丨2018年毕业典礼演讲

热门文章

  1. Js参数RSA加密传输之jsencrypt.js的使用
  2. Java的完整表述是什么
  3. linux天文软件下载,天文绘图软件(SkyChart)
  4. 航空代理人,三字代码查询小助手,三字代码
  5. 安防监控工程中光纤的类型
  6. UE4 UMG基础笔记
  7. 2021-09-08 python基础知识学习:文件操作和os模块
  8. 一般电脑丢失文件怎么才能迅速恢复丨迅龙数据恢复文件丨
  9. IT人物之《Netty权威指南》中文作者 专访华为李林锋:我与Netty那些不得不说的事
  10. Reac学习笔记#01#组件定义以及props、state的管理