在使用SED在Linux文件中插入行时遇到一些麻烦

时间:2014-10-29 12:18:13

标签: linux sed

很抱歉,但我对这一切都很陌生,并且我尝试使用可用资源来完成这项工作,但我做错了。

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

tcserver soft nproc 32368
tcserver hard nproc 32368

由于这里可能已有多台机器的信息,我想将其推出,如果从Satellite推出,使用最后一行似乎是最好的选择。

我认为sed是最好的选择。我尝试按照以下方式进行操作,但当我按下它时它会失败。

sed '/^#$/{N; /# End of file/i\
tcserver soft nproc 32368\
tcserver hard nproc 32368\
}' /etc/security/limits.conf

知道我在这里做错了什么吗?我很感激帮助。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

sed 's/# End of file/tcserver soft nproc 32368\ntcserver hard nproc 32368\n# End of file/' /etc/security/limits.conf
我相信应该做的伎俩(而且非常简单)

-i“就地”

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