我的 sysctl.conf 文件中有这段文本。
#begin_atto_network_settings
net.inet.tcp.sendspace=1048576
net.inet.tcp.recvspace=1048576
net.inet.tcp.delayed_ack=0
net.inet.tcp.rfc1323=1
#end_atto_network_settings
我需要在#end_atto_network_settings 之前插入以下三行。
kern.ipc.maxsockbuf=2097152
net.link.generic.system.sndq_maxlen=512
net.classq.sfb.allocation=100
我假设 sed 命令有某种变体?
最佳答案
如果您想编辑文件,可以使用标准编辑器ed
:
ed -s file <<EOF
1,/#end_atto_network_settings/i
kern.ipc.maxsockbuf=2097152
net.link.generic.system.sndq_maxlen=512
net.classq.sfb.allocation=100
.
w
q
EOF
请注意,编辑文件不会更改权限并保留符号链接(symbolic link); sed -i
通常会创建一个临时文件,删除旧文件并重命名临时文件:因此它不会保留权限和符号链接(symbolic link)。
关于linux - 在文件的最后一行之前添加三行新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33001912/