linux----->shell高级编程----grep应用
2016-06-27 21:59
381 查看
1. 背景
在讲到shell编程时, 我们不得不提到正则表达式, 这个可以看似一门新的编程语言的"老家伙", 让我们很多刚入行的程序员来说又爱又恨, 爱因为它实在可以用最简短的语句写出强大的功能, 恨是因为它的语法与我们原来接触的任何一门高级编程语言来说都看似不似. 下面我们就开始主要来介绍正则
2. 正则分类
Basic正则: 出来的比较早, grep一般默认的就是Basic正则
Extended正则: 对Basic的扩展, 默认支持更多的转义字符
3. 基本语法
4. 数量限量符
5. 位置限定符
6. 其它特殊字符
grep
1. 作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
2. 参数
grep [options]
主要参数: linux下 grep --help可查看
-c: 只输出匹配行的计数
-i: 不区分大小写
-h: 查询多文件时不显示文件名
-l: 查询多文件时只输出包含匹配字符的文件名
-n: 显示匹配行级行号
-s: 不显示不存在或无匹配文件的错误信息
-v: 显示不包含匹配文本的所有行
--color=auto: 可以将找到的关键词部分加上颜色的显示
实战操作:
1、已知文件test.txt内容为[test][liyao][sea],请给出打 印test.txt内容时,不包含sea字符串的命令 [假设这个目录文件是存在/data/下]
方法一: grep -v "sea" /data/test.txt
方法一: cat /data/test.txt | grep -v "sea"
对比两方法, 方法二比方法一效率慢一些, 但专业一些.
在讲到shell编程时, 我们不得不提到正则表达式, 这个可以看似一门新的编程语言的"老家伙", 让我们很多刚入行的程序员来说又爱又恨, 爱因为它实在可以用最简短的语句写出强大的功能, 恨是因为它的语法与我们原来接触的任何一门高级编程语言来说都看似不似. 下面我们就开始主要来介绍正则
2. 正则分类
Basic正则: 出来的比较早, grep一般默认的就是Basic正则
Extended正则: 对Basic的扩展, 默认支持更多的转义字符
3. 基本语法
4. 数量限量符
5. 位置限定符
6. 其它特殊字符
grep
1. 作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。
2. 参数
grep [options]
主要参数: linux下 grep --help可查看
-c: 只输出匹配行的计数
-i: 不区分大小写
-h: 查询多文件时不显示文件名
-l: 查询多文件时只输出包含匹配字符的文件名
-n: 显示匹配行级行号
-s: 不显示不存在或无匹配文件的错误信息
-v: 显示不包含匹配文本的所有行
--color=auto: 可以将找到的关键词部分加上颜色的显示
实战操作:
1、已知文件test.txt内容为[test][liyao][sea],请给出打 印test.txt内容时,不包含sea字符串的命令 [假设这个目录文件是存在/data/下]
方法一: grep -v "sea" /data/test.txt
方法一: cat /data/test.txt | grep -v "sea"
对比两方法, 方法二比方法一效率慢一些, 但专业一些.
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍