linux - sed

在日常的linux系统使用中经常会有替换文件字符串,删除查询等功能,sed命令为此而生,大猪也要复习复习一下了。

使用指南

字符串替换
下面例子把input.txt文件中所有出现的hello替换成world

sed 's/hello/world/' input.txt > output.txt

如何没有指定文件流,或者是文件已经删除,可以过滤标准的输入流,下面的3句命令是等价的

sed 's/hello/world/' input.txt > output.txt
sed 's/hello/world/' < input.txt > output.txt
cat input.txt | sed 's/hello/world/' > output.txt

sed可以直接把处理好的字符直接写入到标准的流文件中,使用-i参数即可实现

sed -i 's/hello/world/' output.txt

下面是替换所一一匹配的(如果有abc,那就只替换123)

sed 'y/abcdef/123456/' input.txt

修改第2行到第9行为hello

sed '2,9c hello' input.txt > output.txt

打印
打印指定行的内容,使用-n参数(下面例子打印文件第一行内容)

sed -n '1p' output.txt

sed处理打印多个文件指定行,使用;分号隔开即可(下面例子打印第一个文件第一行与第二个文件第二行内容)

sed -n '1p ; 2p' one.txt two.txt

打印hello后一行开始结尾

sed '/^hello/d' output.txt

指定sed格式文件进行处理
cat my.sed

s/hello/world/
sed -f my.sed input.txt > output.txt
sed --file my.sed input.txt > output.txt

内容删除
下面例子是删除第1行到第3行的内容,并将剩下的内容输出到output.txt文件中

sed '1,3d' input.txt > output.txt

下面例子是找文件所有行,直到找到hello,如何找到则将代码执行的结果码设置成42并退出,使用echo $?即可输出42

sed '/^hello/q42' input.txt > output.txt

删除最后一行内容

sed '$d' input.txt > output.txt

内容插入
在第二行后面插入hello

sed '2a hello' input.txt > output.txt

在第二行前面插入hello

sed '2i hello' input.txt > output.txt

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Linux sed命令是利用script来处理文本文件。sed可依照script的指令,来处理、编辑文本文件。Se...
    姜淑均阅读 792评论 1 2
  • linux sed命令详解 1. Sed简介 sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行...
    很少更新了阅读 2,196评论 0 6
  • 概述 sed命令是一个面向字符流的非交互式编辑器,也就是说sed不允许用户与它进行交互操作。sed是按行来处理文本...
    gurlan阅读 479评论 1 0
  • Linux sed命令实例详解 功能说明:利用script来处理文本文件。 语法:sed [-hnV][-e][-...
    妖孽白YoonA_11c3阅读 698评论 0 0
  • 我突然发现,微信里的我岁月静好,微博里的我怼天怼地
    吼吼吼呀阅读 117评论 0 0

友情链接更多精彩内容