gpt4 book ai didi

bash - 在 shell 脚本中,如何在不同的字符串之后替换第一次出现的字符串

转载 作者:行者123 更新时间:2023-11-29 09:26:37 24 4
gpt4 key购买 nike

我有一个简单的配置文件,看起来有点像这样:

[sectionA]
url = value1
username = value2
password = value3

[sectionC]
url = value1
username = value2
password = value3

[sectionB]
url = value1
username = value2
password = value3

我想将 SectionB 的用户名替换为 valueX,但不影响 SectionA 或 SectionC 的用户名。

我已经在 sed 上尝试了一些变体,但据我所知,它似乎是在单独的行上运行。

我如何做相当于

  1. 搜索 StringA(在本例中为 [SectionB])
  2. 查找下一个出现的 StringB (username = value2)
  3. 替换成StringC('username = valueX`)

最佳答案

sed:

sed '/sectionB/,/\[/s/username.*/username = valueX/' input

awk:

awk -vRS='' -vFS='\n' -vOFS='\n' '
$1~/sectionB/{
sub(/=.*$/, "= valueX", $3)
}
{
printf "%s\n\n", $0
}' input

关于bash - 在 shell 脚本中,如何在不同的字符串之后替换第一次出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978514/

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