如果不退出,如何在文件中添加文本行

时间:2019-07-30 18:17:02

标签: linux bash shell ubuntu-16.04

仅当文本行不存在时,才需要向其中添加多个文本行。

用于配置文件自动化。

例如:

我有这个文件:

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

我要添加以下整个文本(而不是作为单行),因为有可能这些行之一已经添加到另一个Option中,因此,该行将被绕过,这是不希望的行为。

请注意,如果我们一行一行地添加而不是整个文本,则-某些子选项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

1 个答案:

答案 0 :(得分:1)

您是否要将选项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