如果满足条件,我正在尝试编写一个 RegEx 来替换字符串中的字符。特别是,如果字符串以 y
结尾,我想将 a
的所有实例替换为 o
并删除最后的 y
。为了说明我正在尝试用示例做什么:
Katy --> Kot
cat --> cat
Kakaty --> KoKot
avidly --> ovidl
我使用的是正则表达式 s/\(\w*\)a\(\w*\)y$/\1o\2/g
但它不起作用。我想知道如何使用 RegEx 捕捉此任务的“条件”性质。
非常感谢您的帮助。
最佳答案
使用 GNU sed:
如果一行以 y (/y$/
) 结尾,将每个 a
替换为 o
并将结尾的 y 替换为空值 (s/y$//
).
sed '/y$/{y/a/o/;s/y$//}' file
输出:
Kot cat Kokot ovidl
关于regex - 带条件替换的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49180851/