Linux文本三剑客之sed

一、sed命令

1.1 概述

文本三剑客之二:sed

sed是一种流编辑器,按行处理,一次处理一行内容。

操作结果如果只是展示,会放在缓冲区(模式空间),展示结束之后,会从模式空间把操作结果删除。

处理文本时按行处理,处理完当前行,才会处理下一行,直到文件末尾。

1.2 sed命令

格式1

格式2:

选项:

-e :用于执行多个操作命令

-f :在脚本中定义好了操作符,然后根据脚本内容的操作对文本进行操作

-i :直接修改目标文件(慎用)

-n :仅显示script处理后的结果(不加-n,sed会显示两个输出结果,加了-n,会把默认输出屏蔽)

-r :使用扩展正则表达式
 

操作符:

p :打印结果

s :替换,替换字符串

c :替换,替换指定行

y :替换,替换单个字符,多个字符替换必须和替换内容的字符长度保持一致,等量替换

d :删除,删除行

a :插入,在指定行的下一行插入内容

i :插入,在指定行的上一行插入内容

二、sed的常用用法

2.1 寻址打印

寻址打印:按照指定行来打印(以下都省略要操作文件,只写操作符

2.2 过滤文本

对文本内容进行过滤

使用正则表达式对文本内容进行过滤

使用扩展正则:

例:打印/etc/passwd要么以root开头要么以bash结尾的行

2.3 删除文本

sed的删除操作

2.4 替换文本

匹配字符串替换

首字母变成大写

  • \u :转换下个字母为大写,\为转义符
  • \U :转换后面所有字母为大写,直到\L\E为止
  • \l :转换下个字母为小写,\为转义符
  • \L :转换后面所有字母为小写,直到\U\E为止
  • \E :结束大小写转换
  • & :&sed代指前面匹配到的内容

整行替换

单字符替换

注:单字符替换不是字符串替换,上一句的含义是把文件中所有的o换成1,n换成2,e换成3

去掉文件dhcpd.conf#ddns-开头的行的#号

去掉所有被注释行开头的#号

把文件中所有单词的首字母设为大写

2.5 插入文本

2.6 文本互换位置

使用sed对字符串和字符的位置进行互换

用分组的方式对字符串进行互换,分组的默认序号按从左到右为1 2 3 ,在//指定匹配内容时对内容分组,在后面用\分组序号的形式指定分组的位置。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值