sed常用方法


sed的几个参数

参考: ​​https://zhuanlan.zhihu.com/p/134651377​


a 追加,在指定行后添加一行或多行文本
d 删除指定的行
c 替换指定行
i 插入,在指定行前添加一行或者多行文本
p 打印模式空间内容,通常p会与选项-n一起使用



打印指定行sed -n

# 打印第3行
sed -n '3p' filename

# 打印第3行到最后一行的内容
sed -n '3,$p' filename



测试模式

# sed不加参数运行时并不会真的生效
## 测试删除第5行
sed '5N' filename

# 删除第5行(生效)
sed -i '5N' filename



删除行d

# 删除第5行
sed -i '5d' filename

# 删除第N到M行
sed -i 'N,Md' filename

# 删除最后一行
sed -i '$d' filename

# 删除包含"cat"的行
sed -i '/cat/d' filename



插入i(找到的行前添加)和追加a(找到的行后添加)

# 在第4行前插入test
sed '4i test' filenam

# 在以cat开头的行前插入test
sed '/^cat/i test' filename

# 在第4行后追加test
sed '4a test' filename

# 在以cat开头的行后追加test
sed '/^cat/a test' filename



替换

# 常用写法 sed "s///"
sed "s/原字符串/替换字符串/" filename

# 修改SELinux的状态为permissive
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

# 高级用法
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config