sed命令格式如下:
sed 参数 功能选项 文件名或其他标准输入
sed参数如下:
-i:修改文件内容,不是由屏幕输出
-n:取消默认输出,只有被 sed 特殊处理的那一行才
-e:直接在命令行上进行 sed 动作编辑
-f:运行在文件中的 sed 动作
-r:支持扩展型正则表达式
n1,n2:n1 行到 n2 行
sed功能选项如下:
a:追加内容到指定行后
i:插入内容到指定行前
d:删除指定行
c:用新行替换旧行(不常用)
s:对每一行第一次匹配到的内容进行替换,配合标志g可以将一行中所有匹配到的内容进行替换
p:输出指定内容,默认会输出2次匹配到的内容
一、以行为功能的增删功能
1. 将 /etc/passwd 的内容列出并且列印行号,同时,请将第 2~5 行删除!
nl /etc/passwd | sed "2,5d"
2. #在第二行后(亦即是加在第三行)加上 "Hello Sed" 字样!
nl /etc/passwd | sed '2 a Hello Sed'
注意:之前加把 a 改为 i ;增加多行用 \
二、以行为功能的替换和显示功能
1. 将 2-5 行 No 换为 Number
nl /etc/passwd | sed "2,5c No 2-5 Number"
2. 显示 2-5 行
nl /etc/passwd | sed -n "2,5p"
3. 获取 IP 地址
(1)查看IP地址所在的文件
/sbin/ifconfig
(2)查看 IP 地址所在的行
/sbin/ifconfig eth0 | grep "inet"
(3)删除 IP 地址前面的内容
/sbin/ifconfig eth0 | grep "inet" | sed 's/^.*inet //g'
(4)删除 IP 地址后面的内容
/sbin/ifconfig eth0 | grep "inet" | sed 's/^.*inet //g' | sed 's/netmask.*$//g'
三、修改文件
sed -i 's/\.$/\!/g' regular_express.txt