仅当文件不存在时,我需要将多个文本行添加到文件中。
它用于配置文件自动化。
例如:
我有这个文件:

Option 1
Option 2
Option 3
   - some suboption b
Option 4

我有下面的整个文本要附加(不是作为一行),因为这些行中的一行可能已经添加到另一个选项中了,因此,行将被忽略,这不是所需的行为。
注意,如果我们逐行添加而不是整个文本,行-一些子选项B将被省略,因为它已经作为选项5的子选项存在。
Option 5
   - some suboption a
   - some suboption b
   - some suboption c
   - some suboption d

我试过使用sed和awk,但它不是一个完整的文本,而是每行一行。
在运行所需的命令或shell脚本之后,我需要以下文件。
Option 1
Option 2
Option 3
   - some suboption b
Option 4
Option 5
   - some suboption a
   - some suboption b
   - some suboption c
   - some suboption d

最佳答案

如果选项5块还不存在,是否要将其追加到文件末尾?也许有点像

if ! grep -q '^Option 5$' yourfile; then
    cat <<EOF >>yourfile
Option 5
   - some suboption a
   - some suboption b
   - some suboption c
   - some suboption d
EOF
fi

关于linux - 如果不退出,如何在文件中添加文本行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57277795/

10-09 06:47