shell三剑客

目录

一、sed介绍

二、命令格式

常用选项:

常用操作:

案例操作:


一、sed介绍

sed是一种流编辑器,在会编辑器处理数据之前基于预先提供的一组规则来编辑数据流(依次处理每行的内容)

sed编辑器可以根据命令来处理数据流中(一行一行的处理)的数据,这些命令要么从命令行中输出,要么存储在一个命令文本文件中

注:所有的sed命令都在模式空间中执行 源文件内容不会改变 除非用重定向存储输出到文件里

      sed的工作流程有三个过程

读取sed从输入流中读取一行内容并存储到临时的缓冲区中 又称模式空间
执行默认情况下,所有的sed命令都在模式空间中顺序的执行,除非指定了行的地址 否则sed命令 将会在所有的行上依次执行
显示发送修改后的内容到输出流 在发送数据后,模式空间将会被清空 在所有文件内容被处理完成之前,上述过程将重复执行,直至所有内容被处理完

二、命令格式

sed -e '操作' 文件1 文件2....

sed -n -e '操作' 文件1 文件2....

sed -f 脚本文件 文件1 文件2....

sed -i -e '操作' 文件1 文件2.....

sed -e 'n{

操作1

操作2

...

}' 文件1 文件2

常用选项:

-e表示用指定命令来处理输入的文本文件,只有一个命令的话可以省略,多个的话要使用
-f表示用指定的脚本文件来处理输入的文本文件
-h显示帮助
-n禁止sed编辑器输出 但可以与p命令一起使用完成输出
-i直接修改目标文本文件

常用操作:

s替换,替换指定字符
d删除,删除选定的行
a增加 ,在当前行下面增加一行指定内容
i插入,在选定行上面插入一行指定内容
c替换,将选定行替换为指定内容
y字符转换,转换前后的字符长度必须相同 
p打印 如果同时指定行 表示打印指定行 如果不指定,则表示打印的所有内容 如果有非打印字符 则以ASCll输出 
=打印行号
i打印数据流中的文本和不可打印的ASCLL字符 比如$ \t

案例操作:

众所周知sed有三个流程 -n就是禁止第三个输出流程跟p一起使用 就只显示一次内容,如果有但是没有-n就会重复输出内容

只显示第一行

a表示在当前下一行插入内容 i表示在当前上一行插入内容 4c表示替换第4行内容

显示1-3行中间用 ,逗号

显示第3行到最后一行最后用$表示

打印1后面的连续3行  用+号来表示 +几就是几行

打印到第4行内容是后退出  用q来表示 退出  注意在这里想要显示 去掉-n就行了

打印奇数偶数 用n来表示   注意 n是用来表示下一行内容 跟p一起使用   n;p就是本来流编辑器从第一杠开始显示 但是遇到n了 即表示要到下一行  1的下一行就是2  然后输出2  然后重3开始显示 但是有遇到n 表示在3的下一行  就是4  然后p打印出来

p;n反之

p;n是奇数   n;p是偶数

~表示 间隔数 1~2代表从第一行开始间隔2行然后输出即1~3可以利用这个显示奇数偶数

间隔的数包含从第几行开始 1~2   2代表间隔2个   1   2   为2个然后从3开始

'/ xxx/ '  文件  表示包含xxx这行内容打印出来  可以用来查找    /^xxx/ 代表以xxx为开头的 /xxx$/ 表示xxx为结尾的

只显示行号 用 = 来表示

打印ASCGLL字符 用 I 表示

d 用来表示删除 行   可以通过行号来指定删除第几行  如果直接d 的话 表示每行都删除 就没有内容显示

也可以 指定删除第几行的内容 中间用 , 号表示

删除空行用‘/^$’

替换  s来表示  's/旧字符/新字符/p   下面例子意思就是把 root 换成admin  但是只有第一处换了    要想全部替换 加个 g  

sed复制粘贴

sed‘行号H;行号G’

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值