sed编辑命令
sed的编辑命令(sed command):
p |
打印匹配行(和-n选项一起合用) |
= |
显示文件行号 |
a\ |
在定位行号后附加新文本信息 |
i\ |
在定位行号后插入新文本信息 |
d |
删除定位行 |
c\ |
用新文本替换定位文本 |
w filename |
写文本到一个文件,类似输出重定向 > |
r filename |
从另一个文件中读文本,类似输入重定向 < |
s |
使用替换模式替换相应模式 |
q |
第一个模式匹配完成后退出或立即退出 |
l |
显示与八进制ACSII代码等价的控制符 |
{} |
在定位行执行的命令组,用分号隔开 |
n |
从另一个文件中读文本下一行,并从下一条命令而不是第一条命令开始对其的处理 |
N |
在数据流中添加下一行以创建用于处理的多行组 |
g |
将模式2粘贴到/pattern n/ |
y |
传送字符,替换单个字符 |
对文件的操作无非就是”增删改查“,怎样用sed命令实现对文件的”增删改查“,玩转sed是写自动化脚本必须的基础之一。
sed命令打印文件信息(查询):
#打印前5行 [root@zhangchao ~]# sed '5 q' /etc/passwd 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 sed-n '/r*t/p'/etc/passwd#打印匹配r有0个或者多个,后接一个t字符的行 sed-n '/.r.*/p'/etc/passwd#打印匹配有r的行并且r后面跟任意字符 sed-n '/o*/p'/etc/passwd#打印o字符重复任意次 sed-n '/o\{1,\}/p'/etc/passwd#打印o字重复出现一次以上 sed-n '/o\{1,3\}/p'/etc/passwd#打印o字重复出现一次到三次之间以上 ####用sed打印文件的信息的例子的命令###### sed -n '/^#/!p' /etc/vsftpd/vsftpd.conf sed -n '/^#/!{/^$/!p}' /etc/vsftpd/vsftpd.conf sed -e '/^#/d' -e '/^$/d' /etc/vsftpd/vsftpd.conf sed -n '1,/adm/p' /etc/passwd sed -n '/adm/,6p' /etc/passwd sed -n '/adm/,4p' /etc/passwd sed -n '/adm/,2p' /etc/passwd