gpt4 book ai didi

linux - 如何在给定子字符串之后替换字符串中出现的特定字符

转载 作者:太空宇宙 更新时间:2023-11-04 09:57:55 25 4
gpt4 key购买 nike

我有一个字符串包含以#分隔的key=value格式我正在尝试使用 BASH 脚本将 TITLE 值中出现的“=”字符替换为“:”。

"ID=21566#OS=Linux#TARGET_END=Synchronica#DEPENDENCY=Independent#AUTOMATION_OS=Linux#AUTOMATION_TOOL=JSystem#TITLE=Session tracking. "DL Started" Status Reported.Level=none"   

稍后我将解析此字符串以执行 eval 操作

eval $(echo $test_line | sed 's/"//g' | tr '#' '\n' | tr ' ' '_' | sed 's/=/="/g' | sed 's/$/"/g')

sed 's/=/="/g' 部分也会将 ..Level=none 更改为级别="无这导致

eval: line 52: unexpected EOF while looking for matching `"'

什么是正确的 replace bash 命令来替换我的字符串?

最佳答案

作为替代方案,考虑将变量带入 bash 的纯 bash 解决方案,避免(有风险的)eval。

IFS=# read -a kv <<<"ID=21566#OS=Linux#TARGET_END=Synchronica#..."

for kvp in "${kv[@]}" ; do
declare "$kvp"
done

关于linux - 如何在给定子字符串之后替换字符串中出现的特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58683373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com