Shell脚本基础( 四: sed编辑器)

目录

1 简介

1.1 sed编辑器的工作流程

2 sed

2.1 基本用法

 2.2 sed基本格式

2.2.1 sed支持正则表达式

2.2.2 匹配正则表达式

2.2.3 奇数偶数表示

2.2.4 -d选项删除

2.2.5 -i修改文件内容

2.2.6  -a 追加

2.3 搜索替代

2.4 变量


1 简介


sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。

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

命令文本文件中。

1.1 sed编辑器的工作流程

sed 的工作流程主要包括读取、执行和显示三个过程:

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

在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。

注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,
除非是用重定向存储输出或者sed -i.

2 sed

2.1 基本用法

##默认将输入内容打印出来,系统自带自动打印

Shell脚本基础( 四: sed编辑器)_第1张图片

 

##查看文件内容

Shell脚本基础( 四: sed编辑器)_第2张图片

 

##支持重定向

Shell脚本基础( 四: sed编辑器)_第3张图片

 

##也支持管道符

Shell脚本基础( 四: sed编辑器)_第4张图片

 

 2.2 sed基本格式

sed [option]...    'script;script;...'           [input  file...]
        选项         自身脚本语法         支持标准输入管道

常用选项

-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑[root@www data]#sed -n -e '/^r/p'  -e'/^b/p' /etc/passwd
-f FILE 从指定文件中读取编辑脚本
-r, -E -E 使用扩展正则表达式
-i bak 备份文件并原处编辑
-s 将多个文件视为独立文件,而不是单个连续的长文件流

#带有自动打印功能,p又再打印一遍

Shell脚本基础( 四: sed编辑器)_第5张图片

 # -n 选项关闭自动打印功能

Shell脚本基础( 四: sed编辑器)_第6张图片

#直接显示第3行

Shell脚本基础( 四: sed编辑器)_第7张图片

         

2.2.1 sed支持正则表达式

#将包含root的行打印出来   /root(需要匹配的内容)/p(打印)  文件名  

Shell脚本基础( 四: sed编辑器)_第8张图片

 #显示范围

Shell脚本基础( 四: sed编辑器)_第9张图片

#显示第3行往后加4行

Shell脚本基础( 四: sed编辑器)_第10张图片

2.2.2 匹配正则表达式

#显示b开头 和f开头中间的行

sed   -n         '/^b/,/^f/p'                 /etc/passwd

基本格式     '/表达式1/,/表达式2/p' (不要忘记打印)p  文件名

Shell脚本基础( 四: sed编辑器)_第11张图片

2.2.3 奇数偶数表示

奇数

Shell脚本基础( 四: sed编辑器)_第12张图片

偶数

Shell脚本基础( 四: sed编辑器)_第13张图片

2.2.4 -d选项删除

将第三行删除

Shell脚本基础( 四: sed编辑器)_第14张图片

2.2.5 -i修改文件内容

常常用于修改配置文件
-i   与  -i.bak

Shell脚本基础( 四: sed编辑器)_第15张图片

2.2.6  -a 追加

第二行后追加cyw

Shell脚本基础( 四: sed编辑器)_第16张图片

  \表示空格    \n 表示换行

Shell脚本基础( 四: sed编辑器)_第17张图片

2.3 搜索替代

s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###

替换修饰符:

g 行内全局替换
p 显示替换成功的行
w  /PATH/FILE 将替换成功的行保存至文件中
I,i  忽略大小写

Shell脚本基础( 四: sed编辑器)_第18张图片

 

#&指代之前的内容

Shell脚本基础( 四: sed编辑器)_第19张图片

 

#分组 s//代表查找替换  ()代表分组    \1 代表留下的组

Shell脚本基础( 四: sed编辑器)_第20张图片

 

2.4 变量

Shell脚本基础( 四: sed编辑器)_第21张图片

 

你可能感兴趣的:(编辑器,服务器,linux,网络,安全,系统安全,运维)