没有合适的资源?快使用搜索试试~ 我知道了~
linux匹配命令awk、grep、sed简介
需积分: 5 0 下载量 108 浏览量
2024-04-12
20:21:10
上传
评论
收藏 11.19MB PPTX 举报
温馨提示
试读
37页
awk本身就是UNIX/Linux的一种编程语言,用于处理数据和生成报告。 awk逐行方式扫描文件(或输入),以查找匹配某个特定模式的文本行,并对这些文本行执行指定动作。 awk是三个创始人的首字母,代表三个作者:Alfred Aho,Brain Kernighan,Peter Weinberger awk最初是1977年编写的,于1985年有一次重大的改版,以支持更大的程序,增加了自定义函数、动态正则 表达式、同时处理多个输入文件等功能 awk目前有多个版本,包括旧版awk,新版awk(nawk),GNU awk(gawk),POSIX awk等 grep是在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行 grep由Ken Thompson 编写于1973。grep最先出现在 Unix v4 中 grep的名字来自于ex编辑器,在编辑器中全局查找正则表达式的命令是g/RE/p grep家族有grep,egrep,fgrep。Linux使用的GNU grep,基本包含了上述三个grep命令 sed全称stream editor(流编辑器),是非交互式编辑器,能执行
资源推荐
资源详情
资源评论
awk、grep、sed
命令详解
姜明明
中国科学院地质与地球物理研究所
jiangmm@mail.iggcas.ac.cn
2024.3.28@UCAS
授课内容
awk、grep、sed简介
正则表达式(Regular Expression)
awk命令详解
grep命令详解
sed命令详解
2/35
awk、grep、sed简介
• awk本身就是UNIX/Linux的一种编程语言,用于处理数据和生成报告。
• awk逐行方式扫描文件(或输入),以查找匹配某个特定模式的文本行,并对这些文本行执行指定动作。
• awk是三个创始人的首字母,代表三个作者:Alfred Aho,Brain Kernighan,Peter Weinberger
• awk最初是1977年编写的,于1985年有一次重大的改版,以支持更大的程序,增加了自定义函数、动态正则
表达式、同时处理多个输入文件等功能
• awk目前有多个版本,包括旧版awk,新版awk(nawk),GNU awk(gawk),POSIX awk等
• grep是在文件中全局查找指定的正则表达式,并打印所有包含该表达式的行
• grep由Ken Thompson 编写于1973。grep最先出现在 Unix v4 中
• grep的名字来自于ex编辑器,在编辑器中全局查找正则表达式的命令是g/RE/p
• grep家族有grep,egrep,fgrep。Linux使用的GNU grep,基本包含了上述三个grep命令
• sed全称stream editor(流编辑器),是非交互式编辑器,能执行常用编辑器vi和ex相同的编辑命令
• sed是贝尔实验室的 Lee E.McMahon 在1973年到 1974 年之间开发完成,作为grep的继任者
• sed没有破坏性,不会修改原文件,默认情况输出打印到标准屏幕上
• sed在shell脚本里有独特优势,不需要打开文件,还可以编写sed脚本
3/35
正则表达式
• 正则表达式是一种字符模式,用于在查找过程中匹配指定的字符
• 正则表达式被置于两个正斜杠之间(/ /)
• 正则表达式最大的优势是可以利用特殊的元字符来实现多样化搜索匹配
示例
vim编辑文本时,需要讲其中的人名Tom替换成David,另外文中还有讲Tom写成tom的问题
解决方案一::1,$s/tom/David/g (解决不了Tom的替换问题,还会把anatomy,tomatoes等单词改错)
解决方案二::1,$s/\<[Tt]om\>/David/g (带元字符或通配符的正则表达式)
4/35
正则表达式
元字符 功 能 示 例 匹 配 对 象
^ 行首定位符 /^love/ 匹配所有以love开头的行
$ 行尾定位符 /love$/ 匹配所有以love结尾的行
. 匹配单个字符 /l..e/ 匹配包含一个l,后跟两个
字符,再跟一个e的行
* 匹配0或多个重
复的位于星号前
的字符
/ *love/ 匹配包含跟在零个或多个
空格后的模式love的行
[ ] 匹配一组字符中
任一个
/[Ll]ove/ 匹配包含love和Love的行
[x-y] 匹配指定范围内
的一个字符
/[A-Z]ove/ 匹配后面跟着ove的一个A
至Z之间的字符
[^ ] 匹配不在指定组
内的字符
/[^A-Z]/ 匹配不在范围A至Z之间的
任意一个字符
\ 用来转义元字符 /love\./ 匹配包含love,后面跟一个
句点。(未经转义的)
正则表达式元字符
元字符 功 能 示 例 匹 配 对 象
\< 词首定位符 /\<love/ 匹配包含love开头的词的行
(vi和grep支持)
\> 词尾定位符 /love\>/ 匹配包含love开头的词的行
(vi和grep支持)
\(..\) 匹配稍后将要使
用的字符的标签
/\(love\)
able\1e
r/
最多9个标签,模式中最左边
的标签是第一个。例如,模
式love被保存为标签1,用\1
表示。左边这个例子中,查
找串是一个loveable后跟
lover的长串(sed、vi和grep
支持)
x\{m\}或
x\{m,\}或
x\{m,n\}
字符x的重复出现
:m次,至少m
次,m到n次
o\{5,10\
}
匹配包含5-10个连续的字母o
的行(vi和grep支持)
扩展的元字符集
5/35
剩余36页未读,继续阅读
资源评论
就当ta去练技术了
- 粉丝: 417
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功