sed应用

导读:本篇文章讲解 sed应用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

sed主要是用来将数据进行选取、替换、删除、新增的命令,我们看看命令的语法:
[root@localhost ~]# sed [选项] ‘[动作]’ 文件名
选项:
-n: 一般sed命令会把所有数据都输出到屏幕,如果加入此选择,则只会
把经过sed命令处理的行输出到屏幕。
-e: 允许对输入数据应用多条sed命令编辑。
-f 脚本文件名: 从sed脚本中读入sed操作。和awk命令的-f非常类似。
-r: 在sed中支持扩展正则表达式。
-i: 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
动作:
a \: 追加,在当前行后添加一行或多行。添加多行时,除最后 一行外,
每行末尾需要用“\”代表数据未完结。
c \: 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行
外,每行末尾需用“\”代表数据未完结。
i \: 插入,在当期行前插入一行或多行。插入多行时,除最后 一行外,
每行末尾需要用“\”代表数据未完结。
d: 删除,删除指定的行。
p: 打印,输出指定的行。
s: 字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/
旧字串/新字串/g”(和vim中的替换格式类似)。
sed所做的修改并不会直接改变文件的内容(如果是用管道符接收的命令的输出,这种情况连文件都没有),而是把修改结果只显示到屏幕上,除非使用“-i”选项才会直接修改文件
 

行数据操作

[root@localhost ~]# sed ‘2p’ student.txt
ID Name PHP Linux MySQL Average
1 Liming 82 95 86 87.66
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.66
3 Tg 99 83 93 91.66
好像看着不怎么顺眼啊!“p”命令确实输出了第二行数据,但是sed命令还会把所有数据都输出一次,这时就会看到这个比较奇怪的结果。那如果我想指定输出某行数据,就需要“-n”选项的帮助了:
[root@localhost ~]# sed -n ‘2p’ student.txt
1 Liming 82 95 86 87.66

追加行数据 ,在第二行后追加数据
sed ‘2a hello’ student.txt

插入行数据,在第二行后插入数

[root@localhost ~]# sed ‘2i hello \
> world’ student.txt

删除文件的数据,删除第二、四行

[root@localhost ~]#sed ‘2,4d’ student.txt

修改数据 将第二行的 “75” 更改为 “55”

[root@localhost ~]# sed ‘2s/75/55/g’ student.txt

修改数据 将文件中所有的 “75” 更改为 “55”

[root@localhost ~]# sed ‘s/75/55/g’ student.txt

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/71247.html

(0)

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!