当前位置: 首页 > Linux

[Linux]三大编辑工具-sed(上篇)

时间:2023-04-06 02:06:32 Linux

本文介绍三大编辑工具之一-sed0.工作原理1.各参数及含义2.不同的数字表示不同的含义3.优缺点语法格式:sed[options][sed-commands][input-file]sedoptionsed命令输入文件[options]-n只返回结果列-i修改文件-r正则表达式[sed-commands]p常带-n结合使用,打印结果a增加,增加到当前行的末尾(数字)iinsert,插入当前行(数字)creplacebylines替换整个文本工作原理:sed=StreamEditor(数据流editor)通过pipelineinput读入每一行的数据,将数据村存储在一个临时模式空间(缓存)中,判断每一行是否需要执行,执行命令后清空空间,然后存储和处理数据下一行。第二行添加1条记录sed'2a102shanghai'test.txt第二行添加多条记录#方法1sed'2a102shanghai\>103guangzhou>104beijing'test.txt#方法2sed'2a102shanghai\n103guangzhou\n104beijing'test.txt注意:-a是在行后加的;2a=第三行-i添加,该行被添加;2i=第二行删除选项及对应效果10{sed-commands}10thline10,20{sed-commands}10thto20thline10,+20{sed-commands}10thto10+20(30)line10,${sed-commands}从第10行到最后一行,正则$代表结尾1^2{sed-commands}以1开头,相差2,+20的等差数列/guangzhou/以匹配guangzhou,然后添加20行/guangzhou/,/shanghai/以匹配第一个guangzhou开始,以匹配第一个shanghai结束(c=change,不常用)简单示例:替换test中2~5行的用法.txt和删除基本一样sed'2,5c102beijing\n103shanghai'test.txt替换(s常用)-c和-s的直接区别是-c是逐行替换-sfor文本替换语法:1)sed's/replaced/replaced/g'test.txt2)sed's#replaced#replaced#g'test.txt应用场景一:将test.txt文件中的beijing替换为wuhan(常量)sed's/beijing/wuhan/g'test.tst应用场景二:变量a替换为变量b,cat外加""双引号>>t1.txt<chkconfig--list拦截到关闭选项,并添加off->bash执行中间的一系列操作->bash添加:-r扩展正则表达式,可直接使用(),无需\转义chkconfig--list|grep3:on|grep-vE“网络|cround|sysstat”|awk'{print$1}'|sed-r's#(.*)#chkconfig\1off#g'|bash应用场景5:&代表切换变量(替换后适用添加更多字符串)替换第1行数字101.102.103中的0to3with--0--seds/0/--&--/gtest.txtseds#0#--&--#gtest.txtquery-n只返回查询结果,通常和p一起使用print打印应用场景一:返回第二行到最后一行的数据sed-n'2,$p'test.txt