gpt4 book ai didi

sed - 如何使用sed查找和替换除第一个匹配项之外的每个匹配项?

转载 作者:行者123 更新时间:2023-12-01 09:10:27 27 4
gpt4 key购买 nike

我正在使用 sed 来查找和替换文本,例如:

set -i 's/a/b/g' ./file.txt

这会将文件中的每个 a 实例替换为 b。我需要添加一个异常,以便 seda 替换 b 的每个实例,除了文件中的第一次出现,例如:
There lived a bird who liked to eat fish.
One day he fly to a tree.

这变成:
There lived a bird who liked to ebt fish.
One dby he fly to b tree.

如何修改我的 sed 脚本以仅用 a 替换 b 的每个实例,除了第一次出现?

我有 GNU sed 版本 4.2.1。

最佳答案

这可能对你有用(GNU sed):

sed 's/a/b/2g' file

或者
sed ':a;s/\(a[^a]*\)a/\1b/;ta' file

这可以定制,例如
sed ':a;s/\(\(a[^a]*\)\{5\}\)a/\1b/;ta' file

将在 a b 之后开始用 5 替换 a

关于sed - 如何使用sed查找和替换除第一个匹配项之外的每个匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936893/

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