- 默认只替换在每行第一次出现目标文本
sed 's/root/ROOT/' /etc/passwd
- 数字替换标记,替换每行的第二个 root 为 ROOT
sed 's/root/ROOT/2' /etc/passwd
- g 替换标记,替换所有匹配的 root 为 ROOT
sed 's/root/ROOT/g' /etc/passwd
- 替换每行第二次开始及之后的 root 为 ROOT
sed 's/root/ROOT/2g' /etc/passwd
- 打印被替换过的行
sed -n 's/root/ROOT/gp' /etc/passwd
- 把被替换过的行写入 change.txt 中
sed -n 's/root/ROOT/g w change.txt' /etc/passwd
- 将第3行中所有的 bin 替换成 BIN
sed '3 s/bin/BIN/g' /etc/passwd
- 将第2到5行中所有的 bin 替换成 BIN
sed '2,5 s/bin/BIN/g' /etc/passwd
- 将第10行到最后一行中所有的 bin 替换成 BIN
sed '10,$ s/bin/BIN/g' /etc/passwd
- 寻找包含有字符串 root 的行,并将匹配行的 bin 替换为 BIN
sed -n '/root/s/bin/BIN/p' /etc/passwd
- 从匹配 root 的行开始替换 bin 为 BIN,直到匹配 nologin 的行,循环
sed -n '/root/,/nologin/s/bin/BIN/p' /etc/passwd
- 删除匹配 root 的行
sed '/root/d' /etc/passwd
- 删除第2到最后一行
sed '2,$d' /etc/passwd
- 删除匹配 root 行及其下面两行
sed '/root/,+2d' /etc/passwd
- 保留第四、五、六三行,其他行删除
sed '4,6!d' /etc/passwd
- 每一行前面增加一个行 AAAA
sed 'iAAAA' /etc/passwd
- 第一行前面增加一个行 AAAA
sed '1iAAAA' /etc/passwd
- 第三行后面增加一个行 AAAA
sed '3aAAAA' /etc/passwd
- 最后一行后面增加一个行 AAAA
sed '$aAAAA' /etc/passwd
- 逐个字符替换
echo abcdefggfedcba | sed 'y/acg/ACG/'
# 输出 AbCdefGGfedCbA
- 把第1行到第4行写入 test.txt
sed '1,4w test.txt' /etc/passwd
- 把 test.txt 的内容插入第三行后
sed '3r test.txt' /etc/passwd
- 把 000_00000000 换成 000.00000000
sed -i 's/\([0-9]\{3\}\)_\([0-9]\{8\}\)/\1.\2/g' phone_file
# 或者
sed -i -r 's/([0-9]{3})_([0-9]{8})/\1.\2/g' phone_file
- 替换 root 为 (root)
sed -i 's/root/(&)/g' file_name
- 把匹配 AAAA 行下的第二行中的 BBBB 改成 CCCC
sed -i '/AAAA/{n;n;s/BBBB/CCCC/g}' file_name
- 在匹配 AAAA 行下的第三行下添加 CCCC 一行
sed -i '/AAAA/{n;n;n;s/$/\nCCCC/}' file_name