sed(流编辑器)

上传人:l****0 文档编号:186353884 上传时间:2021-07-15 格式:DOCX 页数:8 大小:277.82KB
返回 下载 相关 举报
sed(流编辑器)_第1页
第1页 / 共8页
sed(流编辑器)_第2页
第2页 / 共8页
sed(流编辑器)_第3页
第3页 / 共8页
sed(流编辑器)_第4页
第4页 / 共8页
sed(流编辑器)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《sed(流编辑器)》由会员分享,可在线阅读,更多相关《sed(流编辑器)(8页珍藏版)》请在金锄头文库上搜索。

1、sed基本用法sed (选项) 地址 命令(修饰符) 文件 以上括号内项可以没有选项:-n:静默模式,不在显示模式空间的内容。因为sed是在内存中,所以如果加-p就会打印2次,所以加-n就会显示一次,不在显示模式空间的内容。-i:直接修改原文件(危险)-e script e script:可以同时执行多个脚本 sed e 模式 -e 模式 文件-f /PATH/TO/SED_SCRIPT sed f /path/to/scripts file-r:表示使用扩展正则表达式sed:Stream Editor 行编辑器(全屏编辑器:vi)sed模式空间: 流程:文本通过sed模式进行匹配,丢弃。se

2、d本身也是一个脚本。默认:不编辑原文件,仅对模数空间中的数据进行处理;处理结束后,将模式空间打印至屏幕。(在内存里)格式: sed AddressCommand file sed 地址 命令 文件sed变量第二种比较好用,单引号变成双引号就可以用。Address(地址):1. StartLine(起始行),EndLine(结束行) 例:1,100$:最后一行2. /RegExp/(正则表达式) 例:/root/3. /Pattern1/,pattern2/第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间所有的行。4. LineNumber指定的行5. S

3、tartLine,+N从startLine开始,向后的N行Command(命令): (如果里面有变量,使用双引号) d:删除符合条件的行(rootlocalhost sed# sed 1,2d wenjian)1. 删除第一至第二行 2. 按着正则表达式删除:rootlocalhost sed# sed /wenben/,/yonghu/d wenjian3. 按模式删除:rootlocalhost sed# sed /cat/,/user/d wenjian4. 删除指定的行: rootlocalhost sed# sed 3d wenjian5. 删除N行以后的行:rootlocalhos

4、t sed# sed 3,$d wenjian P:显示符合条件的行 (不加-n会显示2遍符合要求的行,即所有内容会显示1次,符合要求的再显示一次) a string:在指定的行后面追加新行,内容rootlocalhost sed# sed /a #hello wordn#hello linux wenjian i string :在指定的行前面添加新行,内容为string r file:将指定的文件的内容添加至符合条件的行处 w file :将地址指定范围内的内容(行)另存至指定的文件中从wenjian.txt中提取含有oot的行,保存至123.TXT中去。注意:因为sed显示的是内存状态,

5、所以不是结果,需要去另存至文件去看。 s/pattern/string/ :查找并替换(默认只替换每行中被模式匹配到的串)s/模式/将带有oot的字段变成大写将行首的/变成#s/pattern/string/修饰符(以下是修饰符)g:全局替换i:忽略字符大小写s/:s#,s (不仅限于/为分隔符) (),1,2 :后向引用以下情况必须使用后向引用(只改变单词的一部分或一个字母)只把以l开头以e结尾的字符串中的l改为大写L& :引用模式匹配整个串将history行首的空白字符去除,不管有几个将history的结果传送给sed,代表行首,space代表空白字符,*代表至少1个以上的空白字符,/代表

6、什么也没有,g代表全局。 sed练习:1. 删除/etc/grub.conf文件中行首的空白符方法1:方法2:2. 替换/etc/inittab文件中“id:3:initdefault:”一行中的数字为5 教学:替换/etc/inittab文件中“id:3:initdefault:6”一行中的数字3改为5,6改为3.后向引用(id:) 0-9 (:initdefault) 1 5 2出现第一个(),后边引用时就是1 出现第二个()时就是2(如果前边用了(),后边不引用2,就会丢失后边的内容。3. 删除/etc/inittab文件中的空白行方法1: 方法2:4. 删除/etc/inittab文件中开头的#号 5. 删除/etc/inittab文件中开头的#号及后面的空白字符,要求#号后面带空白字符方法26. 删除某文件中以空白字符后面跟了#的类的行中的开头的空白字符及#号方法2:7. 取出一个文件路径的目录名称小括号内()的视为一个整体单元,除了/以外的任意字符,+连接符,?匹配其前面的字符0次或1次。以上命令不理解sed保留空间:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > linux/Unix相关

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号