gpt4 book ai didi

linux - 使用变量替换每隔两次出现的模式

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

大家好,我需要使用 Linux 脚本的帮助。

这是一个示例输入:

登录=Testtt/123
密码=testtt/123
登录=eJwQwq12
密码=OjeEor/Kd

首先我使用 grep 搜索模式然后使用以下代码使用 awk

passStr=grep '密码' test.param | awk -F= '{print $2}'

所以我得到了 Testtt123,然后使用 passStr 将其放入变量中。

然后我将替换字符串放入另一个变量中使用

passNew=ThisIsATest=

现在我需要替换 passStr 中第二次出现的名为 Testtt123 的字符串,并使用变量 passNew 将其替换为 ThisIsATest=

我只有这段代码,但它会替换所有出现的字符串。

sed/$passStr/{s/$passStr/$passNew/} 测试参数

这里的问题是第二次出现在不同的行上。还有其他 Password 的出现使我很难使用 awk,因为 passStr 将有两个可能的值。我只需要第一个密码。

接下来是密码的值有时会包含斜杠。(更改了示例输入)

输出应该是这样的

登录=Testtt123
密码=ThisIsATest=
登录=eJwQwq12
密码=OjeEor/Kd

我能得到什么帮助?

最佳答案

sed "$!N;$s/${passStr}/${passNew}/2" test.param

sed默认是一行一行的,需要先把内容加载到工作缓冲区,在加载的最后一行进行测试

关于linux - 使用变量替换每隔两次出现的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26133268/

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