gpt4 book ai didi

linux - sed:如何在文本 block 后插入行?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:38 25 4
gpt4 key购买 nike

我有文本文件: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

对于那些后面跟着一个空行的选项 block 来说,这工作得很好。

问题是:在最后一个 block 的末尾,如果不存在新行,则不会插入该行。这里有文本 LogFileSize。

如何处理这个问题。

最佳答案

  1. 在比赛线后添加:

    $ sed  '/#.*LogFile=/a\LogFile=/tmp/log1.log'  1.cat

    会做:

    # LogFile=
    LogFile=/tmp/log1.log
  2. 在第一个空行之前添加:

    $ sed  '/^$/i\LogFile=/tmp/log1.log'  1.cat

    会做:

    # LogFileSize=1
    LogFile=/tmp/log1.log

关于linux - sed:如何在文本 block 后插入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21720902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com