sed 命令

sed 命令

Scroll Down

1. sed 命令语法

  • 用于过滤和转换文本的流编辑器
sed  [参数]  '查找  操作'  file

2. sed 命令参数

-n      取消默认输出
-i      修改文件
-e      多项编辑
-r      支持扩展正则
$       表示最后一行

3. sed 命令操作符

p       输出 print
d       删除 delete
c       替换当前行 current
a       在当前行后面插入一行内容
i       在当前行前面插入一行内容
s###g   替换, ###也可以换成 /// 或 @@@ 三个相同符号
s# 被替换内容 # 替换内容 #g

4. sed 命令匹配方式

$
# 输出文件的最后一行
sed  -n  '$p'  /etc/passwd

# 输出文件的 1 到 3 行
sed  -n  '1,3p'  /etc/passwd

# 输出以 root 开头的行
sed  -n  '/^root/p'  /etc/passwd

# 输出 root开头发到 oldboy开头的行
sed  -n  '/^root/,/oldboy/p'  /etc/passwd 

5. 替换

# 注释 1 到 5 行
sed  -i  '1,5s/^/#/g'  file

# 把root 替换成 oldboy
sed  -i  's#root#oldboy#g'  file

# 把 oldboy用户的/bin/bash解释器改成/sbin/nologin
sed  -i  '/^oldboy/s#/bin/bash#/sbin/nologin#'  file

6. 插入

# 在最后一行后面插入内容 oldboy
sed  -i  '$a oldboy'  file

# 在第一行前面插入内容 oldboy
sed  -i  '1i oldboy'  file

# 把 root 开头的行替换成 oldboy
sed  -i  '/^root/c oldboy'  file

7. 删除

# 删除以 oldboy 开头的行
sed  -i  '/^oldboy/d'  file

8. 多项编辑

# 如何关闭关闭selinux和firewalld 临时+永久?
sed -i -e '/^SELINUX=/s/^/#/' -e '/^SELINUX=/a SELINUX=disebled' /etc/selinux/config