Linux学习(2)- 正则表达式基础

一、基础正则表达式介绍与练习

学习内容

  • 正则表达式特殊符号
[:alnum:]代表英文大小写字母及数字
[:alpha:]代表英文大小写字母
[:blank:]代表空格和 tab 键
[:cntrl:]键盘上的控制按键,如 CR,LF,TAB,DEL
[:digit:]代表数字
[:graph:]代表空白字符以外的其他
[:lower:]小写字母
[:print:]可以被打印出来的任何字符
[:punct:]代表标点符号
[:upper:]代表大写字符
[:space:]任何会产生空白的字符如空格,tab,CR 等
[:xdigit:]代表 16 进位的数字类型

作业

  • 使用```

grep -n '[(上面的内容)]' XXX.txt


![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102432321-2090522561.png) ## 二、[grep 命令与正则表达式](https://www.shiyanlou.com/courses/90/labs/780/document) - 实验文档讲解的已经十分清楚,若有记得不清楚的直接查看即可,所以直接链接,博客里就摘抄一下总结。

总结:

^word 表示带搜寻的字符串(word)在行首

word$ 表示带搜寻的字符串(word)在行尾

.(小数点) 表示 1 个任意字符

\ 表示转义字符,在特殊字符前加\会将特殊字符意义去除

  •    表示重复 0 到无穷多个前一个 RE(正则表达式)字符

[list] 表示搜索含有 l,i,s,t 任意字符的字符串

[n1-n2] 表示搜索指定的字符串范围,例如[0-9] [a-z] [A-Z]等

[^list] 表示反向字符串的范围,例如[0-9]表示非数字字符,[A-Z]表示非大写字符范围

{n,m} 表示找出 n 到 m 个前一个 RE 字符

{n,} 表示 n 个以上的前一个 RE 字符


参数说明: -a :将 binary 档案以 text 档案的方式搜寻数据 -c :计算找到 '搜寻字符串' 的次数 -i :忽略大小写的不同,所以大小写视为相同 -n :顺便输出行号 -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行! ### 作业 - 使用-n和不使用的区别 ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102450696-1766708683.png) - 一些练习: ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102746821-1603049102.png) ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628102748477-365529227.png) ## 三、[正则表达式运用之 sed 工具命令](https://www.shiyanlou.com/courses/90/labs/781/document) 在iterm中```
nl regular_express.txt | sed '2a hello\n20155205'
```会出错 ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628104957539-740657807.png) 但是```
nl regular_express.txt | sed '2d'
```却是正确的 ![](http://images2015.cnblogs.com/blog/830327/201706/830327-20170628104959664-366417462.png) 查找了很多,还是不会怎么弄。。。 - 总结了一下感觉还是要自己多用多练才能熟练,此外因为我的事mac系统,所以有些命令和实验楼讲的不一样,自己也要多摸索。 ## 参考资料 - [Shell正则表达式之grep、sed、awk实操笔记](http://www.jb51.net/article/54961.htm)
- [sed命令](http://man.linuxde.net/sed)

Linux学习(2)- 正则表达式基础的更多相关文章

  1. Linux学习之01_基础命令介绍

    初学Linux,还在摸索中,在这个过程中希望能记录下学习到的东西,参考的的书籍为<鸟哥的Linux私房菜> 在这里学到的主要命令有这几个: data cal bc man shutdown ...

  2. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

  3. Linux 学习 (九) 网络基础

    Linux网络管理 学习笔记 ISO/OSI 七层模型 ISO :国际标准化组织 OSI :开放系统互联模型 应用层.表示层.会话层服务于用户 传输层.网络层.数据链路层.物理层服务于实际数据传输 帧 ...

  4. Linux学习系列——零基础开始

    第一部分 Linux基础命令 1.查看系统信息命令 2.Linux内核版本 3.修改环境变量

  5. Linux学习-延伸正则表达式

    grep 默认仅支持基础正则表达式,如果要使用延伸型正则 表达式,你可以使用 grep -E , 不过更建议直接使用 egrep !直接区分指令比较好记忆!其 实 egrep 与 grep -E 是类 ...

  6. linux/linux学习笔记-Shell基础(mooc)

    一.shell概述 shell根据ascII表,将命令翻译为0101...传给内核执行. 内核->shell翻译为命令->用户(操作的界面就是shell,shell=翻译官) linux标 ...

  7. linux 学习随笔-shell基础知识

    1:用户的shell历史命令保存在home/username/.bash_history中 #!!  执行用户的上一条命令 #!pw  执行命令历史中最近一次以pw开头的命令 2:'*'来匹配零或多个 ...

  8. Linux学习笔记之——基础命令学习

    1.find 按照名字查找:find / -name file_name   2.zip压缩 1) 我想把一个文件repartition.txt和一个目录invader压缩成为amateur.zip: ...

  9. linux 学习10 shell 基础

    10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...

  10. Linux学习之路-基础入门 20191104

    1.计算机组成 2.开发接口标准 ABI--(Application Binary Interface) ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动 ...

随机推荐

  1. html5的离线缓存

    一个离线网络应用程序就是一个URL的列表,html,css,js,图片,或者其他类型的资源. 把这些资源,在本地缓存下来,当你尝试在没有网络连接时访问网络应用程序,你的浏览器将自动切换并使用本地代替. ...

  2. sqlserver数据库的分离与附加

    当我们一台电脑上创建了数据库想要转移到另外一台电脑上时,由于数据库处于联机状态,不能够对数据库文件进行复制和迁移,所以我们可以将数据库从服务器上分离出去,这样我们就可以复制数据库文件了.然后将数据库文 ...

  3. 比特币运行原理[z]

    https://baijiahao.baidu.com/s?id=1581755535769652543&wfr=spider&for=pc 这篇文章主要讲解比特币是什么?它的运行原理 ...

  4. ThreeJS中的点击与交互——Raycaster的用法

    基础概念 坐标系 我们的手机屏幕是二维的,但是我们展示物体的世界是三维的,当我们在构建一个物体的时候我们是以一个三维世界既是世界坐标来构建,而转化为屏幕坐标展示在我们眼前,则需要经历多道矩阵变化,中间 ...

  5. C#—Dev XtraTabControl操作总结如动态增加Tab和关闭选项卡方法等

    1:显示行号 找到gridview属性 点击事件 CustomDrawRowIndicator private void gridView1_CustomDrawRowIndicator(object ...

  6. 有关JVM处理Java数组方法的思考

    在Java中,获取数组的长度和String的长度是两种不同的方法,这引起了本文作者的一番思考.本文从JVM的角度,探讨了Java数组在JVM中是什么对象,有哪些成员,以及声明方法. 作者:jarfie ...

  7. oracle表或视图不存在和标识符无效的问题解决

    通过dbvisualizer修改表的名字时,一定要改成大写,否则会报错,数据库中没有该表的错误. 如果新的表名为小写,不行! select的时候,可以用小写名. 标识符无效解决:字段名默认都是大写的, ...

  8. H5C3动画

    1 渐变 /* 渐变:不同颜色之间的柔和过渡 线性渐变:沿着某条直线发生渐变效果 注意:渐变准备来说是一张背景图 语法:linear-gradient */ background-image: lin ...

  9. WIN8配置IIS8.0+PHP+Mysql+Zend

    第一步 开启WIN8的IIS 8.0  控制面板 → 程序与功能 → 启用或关闭WINDOWS功能 按照上面勾选 确定即可 成功安装完毕 打开  http://localhost/ 或者 http:/ ...

  10. spring Springmvc mybatis maven整合

    一.准备工作 1. 首先创建一个表: CREATE TABLE `t_user` ( `USER_ID` int(11) NOT NULL AUTO_INCREMENT, `USER_NAME` ch ...