一、sed介绍
1. sed的工作流程
-
首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。
-
![]()
sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会修改原文件。
-
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
2. sed使用方法
sed常见的语法格式有两种,一种叫==命令行==模式,另一种叫==脚本==模式。
2.1 命令行格式
-
格式
sed [option] 'sed的命令|地址定位' filename
说明:引用shell script中的变量应使用双引号,而非通常使用的单引号
option:
-e 进行多项编辑,即对输入行应用多条sed命令时使用
-n 取消默认的输出
-f 指定sed脚本的文件名
-r 使用扩展正则表达式
-i inplace,原地编辑(修改源文件)
-
常用命令和选项
参考文件:
[root@server shell06]# cat 2.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
298374837483
172.16.0.254
10.1.1.1
p 打印行
d 删除行
[root@server ~]# sed -n 'p' a.txt
[root@server ~]# sed -n '1p' a.txt
[root@server ~]# sed -n '2p' a.txt
[root@server ~]# sed -n '1,5p' a.txt
[root@server ~]# sed -n '5,10p' a.txt
[root@server ~]# sed -n '$p' a.txt
[root@server ~]# sed '5p' a.txt
[root@server ~]# sed -n '5p' a.txt
[root@server ~]# sed '1d' a.txt
[root@server ~]# sed -n '1d' a.txt
[root@server ~]# sed '1d' a.txt
[root@server ~]# sed '1,5d' a.txt
[root@server ~]# sed '$d' a.txt
i\ 在当前行之前插入文本。多行时除最后一行外,每行末尾需用"\"续行 vim——>O
a\ 在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行 vim——> o
c\ 用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行 整行替换
[root@server ~]# sed '$a99999' a.txt
[root@server ~]
