在shell中查询ini文件中包含特定字符串的行,保存该行内容,并删除该行,可以使用sed
命令结合管道和临时变量来实现。这里假设你有一个名为config.ini
的ini配置文件,你想查找并保存所有包含“search_string”的行的内容,然后从原始文件中删除这些行。
bash
# 创建一个临时变量存储要删除的行内容
matched_line=$(sed -n '/search_string/{p;q;}' config.ini)
# 使用-i选项编辑原文件,删除匹配行(不创建备份)
sed -i "/search_string/d" config.ini
# 现在matched_line变量包含了你要保存的行内容
echo "Matched line content: $matched_line"
这段脚本首先使用sed -n
打印出包含搜索字符串的行,并通过q
命令立即退出以获取第一处匹配。然后,它使用另一个sed
命令删除原文件中的匹配行。最后,它会输出保存下来的匹配行内容。
如果你需要处理多行匹配的情况,或者想要对每行执行不同的处理逻辑,可能需要编写更复杂的脚本或使用其他工具如awk等。上述示例仅适用于找到并处理单个匹配项的情况。