Linux sed 追加内容常用方式

sed 是 Linux 中非常强大的文本处理工具,可用于在匹配行前后追加内容、插入新行、替换、写入文件等。

以下是与 追加内容(append / insert / read) 相关的常用语法说明:


一、常用追加命令

  • a(append):在匹配行 后面 追加新行
  • i(insert):在匹配行 前面 追加新行
  • r(read):读取指定文件内容并追加到匹配行 后面
  • w(write):把匹配行写入到指定文件
  • ^:行首
  • $:行尾
  • s 命令分隔符不必是 /
    • 如:s:aaa:bbb:s#aaa#bbb# 都可以

二、示例代码

以下是整理后的所有示例,便于直接复制使用。


1. 修改 SSH 默认端口

Debian

sed -i 's/#Port 22/Port 1066/'  /etc/ssh/sshd_config
sed -i 's/Port 22/Port 1066/'   /etc/ssh/sshd_config

Ubuntu

sed -i 's/Port 22/Port 1066/'  /etc/ssh/sshd_config

2. 在文件首行插入内容

1.sh 第一行插入 666666

sed -i "1i 666666" 1.sh

3. 在文件末尾追加内容

1.sh 文件最后一行追加 666

sed -i '$a 666' 1.sh

4. 追加包含斜杠 / 的内容

sed 默认使用 / 作为分隔符,因此插入含 / 的内容时推荐换分隔符,例如:

方法一:使用不同分隔符

例如使用 #

sed -i '$a RSAAuthentication yes' /etc/ssh/sshd_config

如果你希望追加带斜杠的内容:

sed -i '$a /RSAAuthentication yes/' /etc/ssh/sshd_config

a 本身不会冲突,因此不需要转义分隔符)


三、重点技巧总结

命令 作用
a 在匹配行后追加
i 在匹配行前追加
r 将文件内容追加到匹配行后
w 将匹配行写入文件
^ 行首
$ 行尾
s 替换命令,分隔符可自定