我需要通过脚本修改文件。
我需要执行以下操作:
如果特定的字符串不存在,则将其附加。
因此,我创建了以下脚本:
#!/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
行(如果已存在)。这应该与SomeParameter
或SomeParameter 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/