linux学习之grep和sed的简单用法.ppt

上传人:max****ui 文档编号:6375820 上传时间:2020-02-24 格式:PPT 页数:50 大小:700KB
返回 下载 相关 举报
linux学习之grep和sed的简单用法.ppt_第1页
第1页 / 共50页
linux学习之grep和sed的简单用法.ppt_第2页
第2页 / 共50页
linux学习之grep和sed的简单用法.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
正则表达式 正则表达式 很多不同的unix命令都采用一种便捷一致的方法来说明匹配模式 这种方法就是正则表达式 先学习一个命令 grep grep acinv 搜索字符串 filename c 计算找到 搜索字符串 的次数 i 忽略大小写的不同 所有大小写视为相同 n 输出行号 v 反向选择 l只给出包含给定模式的文件列表 而不给出文件中的匹配行 搜索特定字符串 grep n the express grep vn the express grep in the express grep l the c在所有源文件中查找the 列出包含the的文件名 的使用 grep n t ae st express grep n oo express grep n g oo express grep n a z oo express grep n 0 9 express 和 grep n the express grep n a z express grep n a zA Z express grep n express grep n express grep v express grep v 和 grep n g d express grep n ooo express grep n goo g express grep n g g express grep n g g express grep n 0 9 0 9 express grep n o 2 express grep n go 2 5 g express grep n go 2 g express 字符类描述 alnum 字母数字 a zA Z0 9 alpha 字母 a zA Z blank 空格或制表键 cntrl 任何控制字符 digit 数字 0 9 graph 任何可视字符 无空格 lower 小写 a z print 非控制字符 punct 标点字符 space 空格 upper 大写 A Z xdigit 十六进制数字 0 9a fA F 字符类描述 注意区别以下两个命令 grep n space are expressgrep n space are express 保存匹配的字符串 将捕获的正则表达式匹配的字符串存储在编号为1到9的 寄存器 中 grep n o 2 express grep n express匹配行首的第一个字符 grep n 1 express如果一行的头两个字符相同 就匹配他们 grep n 1 express匹配一行中头一个字符跟最后一个字符相同的行 正则表达式与命令行特殊符号的区别 ls l ls grep n lsz ls grep n z ls z sed的使用 非交互式行编辑器顺序逐行将文件读入到内存中 然后 它执行为该行指定的所有操作 并在完成请求的修改之后将该行放回到内存中 以将其转储至终端 sed工作原理图 sed 删除功能d d Deletepatternspace Startnextcycle 观察命令结果 sed e d express删除指定行 sed e 1d express地址范围 sed e 1 10d express从一行开始每隔一行删一行 sed 0 1d express从第二行开始每隔7行删一行 sed 1 7d express sed 删除功能 带规则表达式的地址删除注释行 sed e d etc services more删除空行 sed e d express删除第一行到空行 sed e 1 d express删除最后一行 sed e d express删除包含apple的行到包含Her的行 sed e apple Her d express sed 打印功能 p 打印命令注意观测下面两个命令的区别 sed n 1p expresssed 1p express 练习题 打印tot文件中从包含 BEGIN 的行开始 并且以包含 END 的行结束的文本块 思考 1如果文件中没有 BEGIN 会怎样 2如果文件中没有 END 会怎样 练习题 只打印C源文件中的main 函数 练习题 删除tot文件中从BEGIN开到END结束的块中包含Name的行sed BEGIN END Name d tot sed的语法 sed address1 address2 options command filename sed功能 替换 s oldvalue newvalue 实例 echomynameiszsh sed s zsh shz 多次修改 1使用 e选项实例 echomynameiszsh sed e s is are e s zsh shz 多次修改 2用分号来分隔命令实例 echomynameiszsh sed s is are s zsh shz 注意分号必须是紧跟斜线之后的下一个字符 全局替换 gsed默认处理每一行中出现的第一个选定序列 如果要处理出现的每一个项目 使用g实例 echomynameiszshzsh sed s zsh shz g 替换每行第N个匹配 echomynameiszshzsh sed s zsh shz 1 echomynameiszshzsh sed s zsh shz 2 sed替换功能案例 catmyfile htmlThisiswhatImeant 删除HTML标记 也就是要得到 ThisiswhatImeant sed替换功能案例 用sed实现unix2dos命令功能unix2dosexpresscat vexpresssed i s express思考 怎样用sed命令将unix格式文件转换成dos格式 案例 案例 老大要求我替换一个大容量文件 大约6 7G 的某些信息 直接用vim打开手动编辑的话那速度简直是苦不堪言 于是我再次想到了awk 仅仅是一些替换工作就用awk太小题大做了 而且在我用awk处理的时候出了一个大问题 文件太大 awk无法打开 我没有对这样的异常做防御 导致后面的操作出现了一连串的问题 最终的结果就是我用了一个空文本替换了刚才那个6 7G的文件 幸好还有备份 汗 正在我 老大已经搞好了 就是用了一行sed sed iXXX e s XXX XXX g y命令 y是一个管局命令 拒绝使用后缀flag gsed y 1234567890 abcdefghij sedy n N命令 nNRead appendthenextlineofinputintothepatternspace 打印奇数行 cat nexpress sed n p n 打印偶数行 cat nexpress sed n n p 思考下面的功能 cat nexpress sed n p N cat nexpress sed n N p cat nexpress sed n p d cat nexpress sed d n cat nexpress sed n d cat nexpress sed 1d n d 案例 输出匹配行的下一行sed n apple n p express区别 sed n apple n p express sed更多功能 h 拷贝模板块的内容到内存中的缓冲区 H 追加模板块的内容到内存中的缓冲区g 获得内存缓冲区的内容并替代当前模板块中的文本 G 获得内存缓冲区的内容并追加到当前模板块文本的后面 出行号x 互换模板块中的文本和缓冲区中的文本 案例 为文件加行号sed express sed N s n 给非空行加行号sed express sed N s n 案例 删除连续重复行sed N n 1 P D chongfu 案例 用sed实现tac功能sed e 1 G h d express 地址限定 匹配 将sample one文件中包含 two 行的 1 替换为 2 sed two s 1 2 sample one 地址限定 限制行 编辑器默认查看输入到流编辑器中的每一行 且默认在输入到流编辑器中的每一行上进行编辑 sed 5 6s 1 2 sample one 地址限定 除什么外 要删除除包含单词 two 的行之外的所有行 sed two d sample onetwo1two1two1 保存输出文件 sed two s 1 2 sample one sample two直接修改原文件 ised i d express 脚本文件 catsedlist two s 1 2 three s 1 3 注意当调用 f 选项时 在源文件内或命令行中不使用撇号 sed fsedlistsample oneone1two2three3one1two2two2three3 f 选项 安静模式 n实例 sed n fsedlistsample one sed n fsedlistsample one sample two catsample two n和 p的配合使用 catsedlist two s 1 2 p three s 1 3 p sed n fsedlistsample onetwo2three3two2two2three3 Sed功能3 增加和插入文本 sed a Thisiswherewestop thetest sample oneone1two1three1one1two1two1three1Thisiswherewestopthetest 注意 美元符号 表示文本将被添加到文件的末尾 反斜线 是必需的 它表示将插入一个回车符 Sed功能3 增加和插入文本 sed 3a Thisiswherewestop thetest sample oneone1two1three1Thisiswherewestopthetestone1two1two1three1 Sed功能3 增加和插入文本 sed 3i Thisiswherewestop thetest sample oneone1two1Thisiswherewestopthetestthree1one1two1two1three1 添加和插入的区别 添加跟在指定的行之后 而插入从指定的行开始 读写文件 sed two s 1 2 three s 1 3 1 3wsample three sample oneone1two2three3one1two2two2three3 catsample threeone1two2three3 修改命令 替换是对字符逐个进行 而修改功能与删除类似 它影响整行 sed two cWearenolongerusingtwo sample one 提前退出 sed two s 1 2 three s 1 3 5q sample oneone1two2three3one1two2 sed two s 1 2 three s 1 3 three q sample oneone1two2three3 提前退出 思考 sed110qfilename有什么作用
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!