shell脚本sed的用法 [操作系统入门]

编程

sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。

sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。详细用法参考:shell脚本--sed的用法

sed 55d test   # 将test文件的第55行删除后的文件内容打印在控制台上,文件本身没有被修改

sed -i 55d test # 将test文件的第55行删除,文件本身被修改了

使用 -i 参数可能会遇到一个 "sed: 1: "xxx": invalid command code ."的问题,参考解释和解决方案:

i 本来的意思就原地替换的意思, 为啥不能替换呢? 一般情况 原地替换是比较危险的行为, 为了规避这样的行为, 需要你提供一个 备份的扩展名, 才能进行替换. 如果你给了空的扩展,就不会备份源文件. 但这不是推荐的方式. 因为 你面临这损坏或者部分损坏的危险 有可能恰巧是当磁盘空间用完的时候.

 

来加上扩展名 来试验一下

sed  -i ".bak"5d test

此时 就会发现 一个备份文件

├── test

├── test.bak

如果不想备份的话, 可以不提供扩展名称. 加上一个空串即可.

sed  -i ""5d test

 

参考文档:shell脚本--sed的用法用sed 报了一下错误 invalid command code

 

 

shell脚本--sed的用法

以上是 shell脚本sed的用法 [操作系统入门] 的全部内容, 来源链接: utcz.com/z/518689.html

回到顶部