【软件测试基础知识】sed命令,这一篇文章就够了

发布 : 软件测试培训      来源:软件测试培训干货

2020-07-01 18:41:49

sed 是一个很强大的文本编辑器。 可以对来自文本, 以及标准输入的文本进行编辑,sed会从文件或者标准输入中读取一行,将其复制到缓冲区,对文本编辑完成之后,读取下一行直到所有的文本行都编辑完毕。但是sed选项有特别的多,并且有特别多的处理方式,理解起来比较困哪,所以接下来我们直接通过一些实际操作来理解sed命令

命令格式格式:sed [option] 'command' 文本文件

选项:

-i:表示inplace-edit,就地修改文件。

-h:显示帮助信息

命令:

动作a :新增,a的后面可以接字串,这些字串会在新的一行出现(目前的下一行)。动作d :删除,d后通常不接任何内容。

动作s :替换,默认替换每行中出现的第一处内容。

案例1 sed -i '2a\ujiuye' /tmp/file.txt

#在这个文件第二行直接写入ujiuye,不用打开文件编辑 -i 能够直接修改文件

案例2 sed -i '1i\hello-World' /tmp/file.txt

#在第一行插入helloWo 后面的i表示首行,如果不写1,则表示在所有行前面添加

案例3 sed 'i1\test' /tmp/file.txt

#数字和后面的i位置不能改变,在每一行前面插入相应的内容,\t识别成了tab键,形成了空格

案例4 sed '$a\hello-world' /tmp/file.txt

#在最后一行的下一行插入内容

案例5 sed 's/旧串/新串/' /tmp/file.txt

#将文件中的就字符串替换为新字符串,默认替换第一个

案例6 sed 's/旧串/新串/g' /tmp/file.txt

#将文件中的就字符串全部替换为新字符串,后面的g是global的意思 ,s前面也可以加具体的数据,表示具体的行

案例7 sed 'nd' /tmp/file.txt

#删除文件中的内容,n表示数字,可写可不写,表示删除第几行

案例8 sed -n '3p' /tmp/file.txt

#p表示打印, 打印第三行内容 前面的选项n表示特殊处理某一行

案例9 sed -n '100,200p' /tmp/file.txt

#打印这个文件的100行到200行

案例10 sed '/My/,/You/d' /tmp/file.txt

删除包含"My"的行到包含"You"的行之间的行

案例11 sed '/My/,10d' /tmp/file.txt

#删除包含"My"的行到第十行的内容

案例12 sed '/my/d' datafile

#删除包含my的行,其余的都被显示

案例13 sed -i 's/ujiuye/helloWorld&/' /tmp/file.txt

#在所有ujiuye前面插入helloworld

案例14 sed -i 's/ujiuye/&helloWorld/' /tmp/file.txt

#在所有ujiuye后面插入helloWorld

案例15 sed –i ‘s/^/ HEAD&/’ /tmp/file.txt

#在每行的头添加字符,比如“HEAD”

案例16 sed -I ‘s/$/&tail/’ /tmp/file.txt

#在每行的尾部添加字符,比如“tail”

案例17 sed -i ‘/^$/d;s/111/aaa&/;s/111/&bb’ /tmp/file.txt

#删除所有空格并在指定位置插入相关内容 “^” 代表行首 “$” 代表行尾

案例18 sed -n '1,20s/My$/You/gp' datafile

#取消默认输出,处理1到20行里匹配以My结尾的行,把行内所有的My替换为You,并打印到屏幕上。

#编辑多个文件

案例17 sed -i 's/ujiuye/&helloWorld/' *.txt

在所有的*.txt文档的ujiuye后面插入helloWorld

THE END  

声明:本站稿件版权均属中公教育优就业所有,未经许可不得擅自转载。

领取零基础自学IT资源

涉及方向有Java、Web前端、UI设计、软件测试、python等科目,内容包含学习路线、视频、源码等

点击申请领取资料

点击查看资料详情 

收起 


 相关推荐

问题解答专区
返回顶部