linux学习笔记-第十二课-Shell脚本之正则表达式(一)
2015-04-11 12:34
711 查看
一、grep,egrep,fgrep
1)grep
格式:grep [选项] [模式] [文件名]
常用选项:-n:显示行号和匹配的行
-v:反向匹配
-c:不显示匹配的行,只显示匹配的行数
-i:忽略大小写
-r:递归搜索
-E:支持扩展正则表达式
-P:支持Perl正则表达式
-F:不支持正则表达式,将模式按字面意义匹配
示例:
2)egrep
egrep是grep的扩展,可以使用其他的通配符
+:有1个以上的字符
?:有0个或1个字符
a|b:匹配a或b的字符
():字符组
3)fgrep
类似于grep,将特殊字符及$字符识别为其本身
二、sed
非交互式文本文件编辑器
常用选项:
-n:取消默认输出
-e:允许执行多个脚本
-i:直接修改原始文件
-r:使用扩展正则表达式
示例:
1)grep
格式:grep [选项] [模式] [文件名]
常用选项:-n:显示行号和匹配的行
-v:反向匹配
-c:不显示匹配的行,只显示匹配的行数
-i:忽略大小写
-r:递归搜索
-E:支持扩展正则表达式
-P:支持Perl正则表达式
-F:不支持正则表达式,将模式按字面意义匹配
示例:
grep示例 | 说明 |
grep '\<Tom>\' file | 显示包含单词Tom的行 |
grep 'Tom Jerry' file | 显示包含‘Tom Jerry’的行 |
grep '^Tommy' file | 显示以Tommy字符串开始的行 |
grep '\.bak$' file | 显示行的末尾以.bak结束的行 |
grep '[Pp]hoto' * | 显示当前工作目录的所有文件名中包含photo或Photo的文件名 |
grep '[A-Z]' file | 显示至少包含1个大写字母的行 |
grep '[0-9]' file | 显示至少包含1个数字的行 |
grep '[A-Z]...[0-9]' file | 显示以大写字母开始、以数字结束的5个字符串模式的行 |
grep -w '[tT]est' file | 显示包含但是Test和test的行 |
grep -s 'TY Kim' file | 搜索包含'TY Kim'的行,但是不显示在屏幕 |
grep -v 'Jerry' file | 显示不包含'Jerry'的所有行 |
grep -i 'sam' file | 忽略大小写字母,显示所有包含sam的行 |
grep -l 'Dear Boss' * | 显示包含'Dear Boss'的所有文件目录 |
grep -n 'Tom' file | 显示包含Tom的行,同时显示行号 |
grep "$name" file | 显示所有拥有name变量值的行。使用变量时必须使用双引号(" ") |
grep '$5' file | 显示包含'$5'字符的行。单引号内的$字符被识别为其本身 |
ps aux | grep '^*multi' | 将ps的显示结果通过管道符和grep连接,显示行首有空格并包含multi的所有行 |
egrep是grep的扩展,可以使用其他的通配符
+:有1个以上的字符
?:有0个或1个字符
a|b:匹配a或b的字符
():字符组
3)fgrep
类似于grep,将特殊字符及$字符识别为其本身
二、sed
非交互式文本文件编辑器
常用选项:
-n:取消默认输出
-e:允许执行多个脚本
-i:直接修改原始文件
-r:使用扩展正则表达式
示例:
sed示例 | 含义 |
8d | 删除输入的第8行 |
/^$/d | 删除所有空行 |
1,/^$/d | 从第一行起 删除直到 发现空行 |
/Jones/p | 只显示包含“Jones”的行(使用-n选项) |
s/Windows/Linux/ | 在输入的各行用“Linux”替换第一次出现的“Windows” |
s/Windows/Linux/g | 在输入的各行用“Linux”替换每次出现的“Windows” |
s/*$// | 删除所有行尾出现的空格 |
s/00*/0/g | 以0替换所有连续出现的0 |
/GUI/d | 删除包含“GUI”的所有行 |
s/GUI//g | 在输入的各行删除“GUI”三个字符 |
相关文章推荐
- shell脚本学习笔记之正则表达式
- shell脚本学习笔记之grep&正则表达式
- shell脚本学习笔记 (正则表达式)
- 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式
- Linux 学习笔记 -- 第三部分 学习 shell 与 shell script -- 第12章 正则表达式与文件格式化处理
- Linux学习笔记(正则表达式)
- shell脚本学习:快速理解正则表达式之grep篇
- 转――[Shell学习笔记] Shell正则表达式与grep、sed、awk的特点
- Liunx 命令行与shell脚本编程大全 第八章学习笔记(Linux系统的包管理基础)
- Linux系统命令及Shell脚本学习笔记一:Linux简介
- shell通配符与文本正则表达式学习笔记
- shell脚本学习:循序渐进程序选择流与正则表达式
- linux学习笔记—shell脚本执行方式
- Linux之ubuntu学习笔记(九):shell 脚本
- shell脚本学习:正则表达式之sed,tr篇
- 鸟哥Linux私房菜笔记(二):正则表达式、shell脚本
- Vbird的Linux私房菜学习笔记之正则表达式-grep
- Linux学习笔记(正则表达式-1)
- Vbird的Linux私房菜学习笔记之正则表达式-awk
- shell脚本学习:正则表达式之sed,tr篇