sed +如何用缩进附加行

Kin*_*vid 4 linux redhat sed

我使用以下sed命令来追加行:

       rotate 1
       size 1k
Run Code Online (Sandbox Code Playgroud)

在missok这个词之后

小美学问题是"旋转1"不像其他线那样对齐

# sed '/missingok/a      rotate 1\n    size 1k' /etc/logrotate.d/httpd

 /var/log/httpd/*log {
       missingok
rotate 1
       size 1k
       notifempty
       sharedscripts
       delaycompress
       postrotate
           /sbin/service httpd reload > /dev/null 2>/dev/null || true
       endscript
}
Run Code Online (Sandbox Code Playgroud)

有人建议如何在missingok字符串下缩进字符串"rotate 1"?

原始文件

/var/log/httpd/*log {
    missingok
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
 }
Run Code Online (Sandbox Code Playgroud)

Fli*_*int 6

显然,第一批追逐者必须逃脱

sed '/missingok/a\\trotate 1\n\tsize 1k' /etc/logrotate.d/httpd
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 6

只需使用即可\逃离空间。

sed '/missingok/a\ \ \ \ \ \ rotate 1\n\ \ \ \ size 1k' /etc/logrotate.d/httpd
Run Code Online (Sandbox Code Playgroud)

在实际修改之前一定要进行测试。当它与您的 bash/shell 配合良好时,添加-i以就地编辑文件:)

ps 和之前的答案差不多。正如问题所描述的,logrotate conf 文件使用空格缩进,因此这个答案。不要为是否使用空格或制表符而烦恼。