sed工具的使用

grep工具的功能其实还不够强大,grep实现的只是查找功能,而它却不能实现把查找的内容替换掉。以前用vim的时候,可以查找也可以替换,但是只局限于在文本内部来操作,而不能输出到屏幕上,sed工具就能实现把替换的文本输出到屏幕上的功能了。

常用选项:
-n:把经过sed命令处理的行输出到屏幕
-e:允许对输入数据应用多条sed命令编辑
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出
-a:追加,在当前行后添加一行或多行
-c:行替换,用c后面的字符串替换原数据行
-i:插入,在当期行前插入一行或多行
-d:删除,删除指定的行
-p:打印,输入指定的行
-s:字串替换,用一个字符串替换另外一个字符串。格式为“行范围s/旧字串/新字串/g”

1、打印某行
sed -n ‘n’ p filename ,单引号内的n是一个数字,表示第几行:
这里写图片描述

要想把所有行都打印出来可以使用 :
sed -n’1,$’p filename
这里写图片描述

也可以指定一个区间:
sed -n ‘1,3’p passwd
这里写图片描述

2、打印包含某个字符串的行:
sed -n ‘/root/’p passwd
这里写图片描述

也可以使用:^ $ . *

这里写图片描述

这里写图片描述

这里写图片描述

3、-e 可以实现多个行为
sed -e ‘1’p -e ‘/111/’p -n passwd 或
sed -e ‘1p;/111/p’ -n passwd
这里写图片描述

4、删除某行或者多行
sed ‘1’d passwd
这里写图片描述

sed ‘1,3’d passwd
这里写图片描述

5、替换字符或字符串
sed ‘1,2s/ot/to/g’ passwd
这里写图片描述

‘s’ 就是替换的命令, ‘g’ 为本行中全局替换,如果不加 ‘g’ 只换该行中出现的第一个,除了可以使用 ‘/’ 作为分隔符外,还可以使用其他特殊字符例如 ‘#’ 或者 ‘@’ 都没有问题:
sed ‘1,2s#ot#to#g’ passwd
这里写图片描述

文档中所有字母替换成空:
sed ‘s/[a-zA-Z]//g’ passwd
这里写图片描述

6、调换两个字符串的位置
sed ‘s/(rot)(.*)(bash)/\3\2\1/’ passwd
这里写图片描述

在某一行前或者后增加指定内容
sed ‘s/^.*$/123&/’ passwd
这里写图片描述

7、直接修改文件的内容
sed -i ‘s/ot/to/g’ passwd
这里写图片描述

由于这个命令可以直接把文件修改,所以在修改前最好先复制一下文件以免改错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值