我需要通过脚本修改文件。
我需要执行以下操作:
如果特定的字符串不存在,则将其附加。

因此,我创建了以下脚本:

#!/bin/bash
if grep -q "SomeParameter A" "./theFile"; then
echo exist
else
   echo doesNOTexist
   echo "# Adding parameter" >> ./theFile
   echo "SomeParameter A" >> ./theFile
fi

这可行,但是我需要进行一些改进。
我认为如果我检查“SomeParameter”是否存在然后查看它是否跟在“A”或“B”之后会更好。如果是“B”,则设为“A”。
否则,请在最后一个注释块的开始之前附加字符串(就像我一样)。
我该怎么办?
我的脚本不好。
谢谢!

最佳答案

首先,更改任何SomeParameter行(如果已存在)。这应该与SomeParameterSomeParameter B这样的行一起使用,并带有任意数量的额外空格:

sed -i -e 's/^ *SomeParameter\( \+B\)\? *$/SomeParameter A/' "./theFile"

然后添加该行(如果不存在):
if ! grep -qe "^SomeParameter A$" "./theFile"; then
    echo "# Adding parameter" >> ./theFile
    echo "SomeParameter A" >> ./theFile
fi

关于linux - 有条件地在Linux脚本中添加或追加到文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13007672/

10-10 17:39