问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux之sed用法

发布网友 发布时间:2023-10-02 00:07

我来回答

1个回答

热心网友 时间:2024-07-05 11:23

sed命令行格式为:
sed [-nefri] ‘command’ 输入文本
  常用选项:
   -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
   -e∶直接在指令列模式上进行 sed 的动作编辑;
   -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
   -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
   -i∶直接修改读取的档案内容,而不是由萤幕输出。
常用命令:
   a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
   c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
   d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
    s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
举例:(假设我们有一文件名为ab)
删除某行
[root@localhost ruby] # sed '1d' ab              #删除第一行
[root@localhost ruby] # sed '$d' ab              #删除最后一行
[root@localhost ruby] # sed '1,2d' ab           #删除第一行到第二行
[root@localhost ruby] # sed '2,$d' ab           #删除第二行到最后一行
显示某行
  .    [root@localhost ruby] # sed -n '1p' ab           #显示第一行
[root@localhost ruby] # sed -n '$p' ab           #显示最后一行
[root@localhost ruby] # sed -n '1,2p' ab        #显示第一行到第二行
[root@localhost ruby] # sed -n '2,$p' ab        #显示第二行到最后一行
使用模式进行查询
[root@localhost ruby] # sed -n '/ruby/p' ab    #查询包括关键字ruby所在所有行
[root@localhost ruby] # sed -n '//$/p' ab        #查询包括关键字$所在所有行,使用反斜线/屏蔽特殊含义
增加一行或多行字符串
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1a drink tea' ab  #第一行后增加字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
drink tea
end
drink tea
[root@localhost ruby] # sed '1a drink tea/nor coffee' ab   #第一行后增加多行,使用换行符/n
Hello!
drink tea
or coffee
ruby is me,welcome to my blog.
end
代替一行或多行
[root@localhost ruby] # sed '1c Hi' ab                #第一行代替为Hi
Hi
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,2c Hi' ab             #第一行到第二行代替为Hi
Hi
end
替换一行中的某部分
  格式:sed 's/要替换的字符串/新的字符串/g'   (要替换的字符串可以用正则表达式)
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird
    [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'        #删除ruby
插入
[root@localhost ruby] # sed -i '$a bye' ab         #在文件ab中最后一行直接输入"bye"
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
bye
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
笔记本电脑的哪些牌子什么牌子的笔记本电脑好 笔记本电脑品牌质量排行榜你知道哪个最耐用全面解析笔记本电脑品牌的质 ... 十大笔记本电脑品牌笔记本电脑推荐品牌 各大汽车电脑品牌厂家官方售后服务电话合辑v3.00 哪种笔记本电脑售后好哪个品牌电脑售后好 各大笔记本电脑品牌售后网点及售后电话汇总解决您笔记本电脑问题的选 ... 如何教育孩子成学霸 学霸的家长是怎样培养孩子的? 聪明的懒孩子怎么变成学霸 学霸孩子怎么培养 ...我身体差,希望一年后负重长跑25分钟内跑完5公里。400米障碍不超过1... 电脑蓝屏,怎么装系统都不行,怎么办,装的64位的win10 黯灵龙男枪怎么加攻击 怎样查询中国联通有那些APP不能用? 云顶之弈s7风暴龙羁绊效果一览 怎样把word里的文字设置成5号字体? 老号码怎么改腾讯王卡资费 银行贷3500元利息是5.6一年是多少呀 联通大王卡看腾讯视频是直接看吗? 联通大王卡如何扣费的 2022平凉市招聘公告中未落实工作的高校毕业生包括函授吗 平凉提升学历最快是哪种方式? led路灯配件 痔疮疼痛吃什么药 鞍部是指哪个位置 请问这个八字日元的十神是什么? 乙卯 乙酉 甲子 甲戌 谢谢! 乙卯日为什么是下等命 乙卯日与甲子日配吗,乙卯日柱与甲子日柱是否适合 红寺堡农资城有新建项目吗 ...医生说伤口差不多长好了就把药纱布留在里面. 萍乡哪里适合摆摊 我想问下在萍乡步行街摆摊买东西要钱么??? 江西萍乡秋收起义广场摆摊需不需要收费 江西萍乡大街上摆地摊要钱吗 萍乡步行街摆摊收费吗,现在还有摊位吗 罗汉果能治哮喘吗 ...出生的属相,2019年1月1日下午17点26分出生的女孩,五 ...系统提示说服务器没有设置事务处理,哪位高手帮帮忙?多谢了_百度... ...SolidAngle MtoA 1.2.7.3 - 2015-2016 Ext2 Win 苹果6不读卡怎么激活不了怎么办啊 国服最强梦泪出装 现在都要绿色低碳发展,金茂绿建在区域能源规划方面做的怎么样? 金茂绿建有潜力吗 梦见和老公一起洗淋浴的预兆 中节能唯绿是做什么的? 怎么登陆网盘啊? 一吵架就提离婚,真的好吗? 夫妻经常吵架,是不是就容易离婚呀? 一个长方形用尺子量出是三里米零五毫米这样的体怎么读,咋么写。_百度... 光伏建材常态化容易吗?