如何用sed替换@ string和大写字母

时间:2014-08-23 16:30:20

标签: linux sed

我有一条线需要替换为;

arguments = ("-e", "-d", "user@domain.com", "-m", "user@xxx.com",)

arguments = ("-e", "-d", "user@domain.com", "-m", "user XXX)

我只需要更改'@'字符串的第二部分

THX yael

1 个答案:

答案 0 :(得分:0)

你可以试试下面的sed命令,

$ echo 'arguments = ("-e", "-d", "user@domain.com", "-m", "user@xxx.com",)' | sed 's/@\([^.@]*\)\.[^"@]*\([^@]*\)$/ \U\1\2/g'
arguments = ("-e", "-d", "user@domain.com", "-m", "user XXX",)

$ echo 'arguments = ("-e", "-d", "user@domain.com", "-m", "user@xxx.com",)' | sed 's/^\([^@]*@[^@]*\)@\([^.@]*\)\.[^"@]*\([^@]*\)$/\1 \U\2\3/g'
arguments = ("-e", "-d", "user@domain.com", "-m", "user XXX",)

<强>更新

$ echo 'arguments = ("-e", "-d", "user@domain.com", "-m", "user@xxx.com",)' | sed 's/^\([^@]*@[^@]*\)@\([^.@]*\)\.[^"]*.*$/\1 \U\2)/g'
arguments = ("-e", "-d", "user@domain.com", "-m", "user XXX)