我有文件文件:file.conf
### Option: LogFile
# Name of log file.
# If not set, syslog is used.
#
# Mandatory: no
# Default:
# LogFile=
### Option: LogFileSize
# Maximum size of log file in MB.
# 0 - disable automatic log rotation.
#
# Mandatory: no
# Range: 0-1024
# Default:
# LogFileSize=1
我试过了:
sed --posix -e '/\bLogFile\b/{:a;n;/^ *$/!ba;i\LogFile=/tmp/log1.log' -e '}' file.conf
对于那些后跟空行的选项块,这个工作正常。
问题是:如果没有新行,则在最后一个块结束时,它不会插入该行。这里有文字LogFileSize。
如何处理。
答案 0 :(得分:0)
在匹配线后添加:
$ sed '/#.*LogFile=/a\LogFile=/tmp/log1.log' 1.cat
将会:
# LogFile=
LogFile=/tmp/log1.log
要在第一个空行之前添加:
$ sed '/^$/i\LogFile=/tmp/log1.log' 1.cat
将会:
# LogFileSize=1
LogFile=/tmp/log1.log