【发布时间】:2022-11-27 15:34:18
【问题描述】:
我有一个具有这种结构的文件:
section "first_section" {
parameter1 = value1
parameter2 = value2
parameter3 = value3
}
section "second_section" {
parameter1 = value1
parameter2 = value2
parameter3 = value3
}
...
我有一个包含新部分的变量,例如:
section "third_section" {
parameter1 = value1
parameter2 = value2
parameter3 = value3
}
如果该部分已存在于文件中,我想在添加新部分之前检查 Bash。
我正在尝试类似的东西
if grep -q -z "$section" file.txt
then
echo "Duplicate found"
else
echo "$section" >> ./file.txt
fi
但是,我总是得到 Duplicate found 输出,即使它不是真的。
【问题讨论】:
-
请使用您尝试过的代码和您的代码生成的(错误)结果更新问题;变量是如何填充的(来自文件?在你的脚本中硬编码?用户在命令提示符下输入?)(用这个额外的细节更新问题)
-
这通常看起来像您想要一个基于 regex 的快速但肮脏的解决方案,这可以在 Bash 中实现,或者一个更结构化的基于解析的解决方案,这可能更适合其他语言。您要找的是哪一个?
-
@BlackBeans 基于正则表达式的快速而肮脏的解决方案可以完成此任务。谢谢!
标签: bash