使用SED在Linux文件中间插入行有问题

使用SED在Linux文件中间插入行有问题,linux,sed,Linux,Sed,很抱歉,我对这一切都很陌生,我已经尝试使用可用的资源来完成这项工作,但我做错了什么 我要做的是将这两行添加到/etc/security/limits.conf文件的底部的#End of line标记之前 tcserver soft nproc 32368 tcserver hard nproc 32368 由于这里可能已经有关于我想把它推出的多台机器的信息,如果从卫星推出,使用最后一行似乎是最好的选择 我认为sed是最好的选择。我试着按照下面的方法做,但当我推的时候,它又失败了 sed '/^

很抱歉,我对这一切都很陌生,我已经尝试使用可用的资源来完成这项工作,但我做错了什么

我要做的是将这两行添加到/etc/security/limits.conf文件的底部的
#End of line
标记之前

tcserver soft nproc 32368
tcserver hard nproc 32368
由于这里可能已经有关于我想把它推出的多台机器的信息,如果从卫星推出,使用最后一行似乎是最好的选择

我认为sed是最好的选择。我试着按照下面的方法做,但当我推的时候,它又失败了

sed '/^#$/{N; /# End of file/i\
tcserver soft nproc 32368\
tcserver hard nproc 32368\
}' /etc/security/limits.conf
知道我做错了什么吗?非常感谢您的帮助。

sed的/#文件结尾/tcserver soft nproc 32368\ntcserver hard nproc 32368\n#文件结尾/'/etc/security/limits.conf

我相信这应该会奏效(而且这是一个相当大的进步)

-i
就地执行

还请记住,要修改/etc dir中的文件,您可能需要root访问权限

sed '/^# End of file *$/ i\
tcserver soft nproc 32368\
tcserver hard nproc 32368
' /etc/security/limits.conf
  • i周围的空间很重要(在posix版本中,GNU sed在这方面更宽容)
  • i
    到要添加的最后一行的每一行上的后空位,但不在最后一行上(或者您稍微添加下一行,这是一条sed指令)

我只是在搜索模式周围添加分隔符,以排除包含此内容的任何其他行(例如注释)

他不想替换,他想在文件结尾之前添加,我在这里提出的建议-请仔细看看我的
sed
建议-我用三行“替换”
#文件结尾
:他想插入的内容,然后是
#文件结尾
,所以基本上是“在之前添加”起了作用。非常感谢,我真的很感激。