2014-10-29 91 views
0

对不起,但我对这一切都很新,而且我尝试过使用可用的资源来完成这个任务,但是我做错了什么。在使用SED在Linux文件中插入行时遇到了一些问题

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

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 

任何想法我在做什么错在这里?我很感激帮助。

回答

0

sed 's/# End of file/tcserver soft nproc 32368\ntcserver hard nproc 32368\n# End of file/' /etc/security/limits.conf
我相信的是应该做的伎俩(这是很strightforward)

-i做“到位”

还记得修改在/ etc目录可能需要的文件根访问

+0

他不想替换,他希望在文件结尾 – Hackaholic 2014-10-29 12:41:14

+0

之前添加是的,这就是我在这里提出的 - 在我的'sed '建议请 - 我'用三行替换'#文件结尾':他要插入什么,然后**然后**#文件结尾,所以它基本上是“之前添加” – 4rlekin 2014-10-29 12:42:15

+0

这没有办法。非常感谢你,我真的很感激。 – givepatajob 2014-10-29 13:24:43

1
sed '/^# End of file *$/ i\ 
tcserver soft nproc 32368\ 
tcserver hard nproc 32368 
' /etc/security/limits.conf 
  • 周围空间我是很重要的(在POSIX版本,GNU sed的是更宽容这个)
  • ,直到最后一行在每一行后面的空间从i增加,但不是在最后一行(或添加以下行littearly,这是一个SED指令)

我只是周围添加分隔符搜索模式排除任何其他行,包括此(例如评论)

相关问题