gpt4 book ai didi

linux - 使用 sed 替换字符串的一部分

转载 作者:太空宇宙 更新时间:2023-11-04 09:39:20 24 4
gpt4 key购买 nike

假设邮件的正则表达式是[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+,我想全部替换id 部分变成“客户”,例如

mike@yahoo.com => customer@yahoo.comjohn@gmail.com => customer@gmail.com

我可以这样写

$ echo mike@yahoo.com | sed 's/[a-zA-Z0-9][a-zA-Z0-9]*@[a-zA-Z0-9][a-zA-Z0-9]*\.[a-zA-Z0-9][a-zA-Z0-9]*/customer/g' 

但是我怎样才能让域部分不改变呢?基本上,问题是在字符串中找到一个模式并只替换它的一部分,其余部分不变。

最佳答案

您可以使用 \(..\) 捕获部分匹配模式,并使用 \1 在替换字符串中重用它:

echo mike@yahoo.com | sed 's/[a-zA-Z0-9][a-zA-Z0-9]*@\([a-zA-Z0-9][a-zA-Z0-9]*\.[a-zA-Z0-9][a-zA-Z0-9]*\)/customer@\1/g'

关于linux - 使用 sed 替换字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117937/

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