sed用法

转自:sed工具

sed 本身也是一个管线命令,可以分析 standard input 的啦!而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能


1. 以行为单位的新增/删除功能

sed 的动作为 '2,5d' ,那个 d 就是删除!因为 2-5 行给他删除了,所以显示的数据就没有 2-5 行罗~另外,注意一下,原本应该是要下达 sed -e 才对,没有 -e 也行啦!同时也要注意的是, sed 后面接的动作,请务必以 '' 两个单引号括住喔!

如果题型变化一下,举例来说,如果只要删除第 2 行,可以使用『nl /etc/passwd | sed '2d' 』来达成,至於若是要删除第 3 到最后一行,则是『nl /etc/passwd | sed '3,$d' 』的啦,那个钱字号『 $ 』代表最后一行!


在 a 后面加上的字串就已将出现在第二行后面罗!那如果是要在第二行前呢?『nl /etc/passwd | sed '2i drink tea' 』就对啦!就是将『 a 』变成『 i 』即可。



2. 以行为单位的取代与显示功能

将2-3行的内容取代成 No2-3.


只列出文件的2-3行。


上述的命令中有个重要的选项『 -n 』,按照说明文件,这个 -n 代表的是『安静模式』!那么为什么要使用安静模式呢?你可以自行下达 sed '2,3p' 就知道了 (2-3 行会重复输出)!有没有加上 -n 的参数时,输出的数据可是差很多的喔!你可以透过这个 sed 的以行为单位的显示功能,就能够将某一个文件内的某些行号捉出来查阅!

3. 部分数据的搜寻并取代的功能

除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代的功能喔!基本上 sed 的搜寻与取代的与 vi 相当的类似!他有点像这样:sed 's/要被取代的字串/新的字串/g'

上表中特殊字体的部分为关键字,请记下来!至於三个斜线分成两栏就是新旧字串的替换啦!我们使用底下这个取得 IP 数据的范例,一段一段的来处理给您瞧瞧,让你了解一下什么是咱们所谓的搜寻并取代吧!


让我们再来继续研究 sed 与正规表示法的配合练习!假设我只要 MAN 存在的那几行数据,但是含有 # 在内的注解我不想要,而且空白行我也不要!此时该如何处理呢?可以透过这几个步骤来实作看看:



4. 直接修改文件内容(危险动作)

sed 甚至可以直接修改文件的内容呢!而不必使用管线命令或数据流重导向!不过,由於这个动作会直接修改到原始的文件,所以请你千万不要随便拿系统配置档来测试喔!

sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!很棒吧!


总之,这个 sed 不错用啦!而且很多的 shell script 都会使用到这个命令的功能~sed 可以帮助系统管理员管理好日常的工作喔!要仔细的学习呢!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值