gpt4 book ai didi

sed - 如果匹配仅在一行的一部分中,sed 可以搜索和替换匹配吗?

转载 作者:行者123 更新时间:2023-12-05 00:35:40 25 4
gpt4 key购买 nike

下面的 sed 将准确输出输入。我想要做的是在第一个匹配组 (\1) 中用 - 替换所有出现的 _,但不在第二个匹配组中。这可能吗?

echo 'abc_foo_bar=one_two_three' | sed 's/\([^=]*\)\(=.*\)/\1\2/'
abc_foo_bar=one_two_three

所以,我希望的输出是:
abc-foo-bar=one_two_three

我不想使用 awk,因为我也在执行一系列其他 sed 命令,但如果必须的话,我会使用它。

编辑:对 RE 的小修复

最佳答案

您可以使用保留空间在 sed 中执行此操作:

$ echo 'abc_foo_bar=one_two_three' | sed 'h; s/[^=]*//; x; s/=.*//; s/_/-/g; G; s/\n//g'
abc-foo-bar=one_two_three

关于sed - 如果匹配仅在一行的一部分中,sed 可以搜索和替换匹配吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227986/

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