2014-10-29 39 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指令)

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

相關問題