我在使用Korn Shell的UNIX系统上。我是UNIX初学者。这就是我想要做的事情:
var1=user/hYbMj8d@RM1
我想只替换第二个字母到最后一个字母,如果重要的话,它将始终为M
,并将其更改为O
,并将其作为新的存储在一个新的变量。
所以新变量将包含:
var2=user/hYbMj8d@RO1
答案 0 :(得分:1)
使用sed
:
sed 's/M\(.$\)/O\1/'
在var1
中存储已更新的var2
的完整解决方案:
var2=`echo $var1 | sed 's/M\(.$\)/O\1/'`
说明:使用sed
替换命令:s/<find>/<replace>/
。它搜索M.$
模式,其中$
是EOL - 所以它将是结尾的第二个字符。然后它会在M
个字符后转义余数(转义括号 - 在sed
捕获组中应该转义)并在O
后用M
字符和余数替换它 - 捕获的内容(它是特殊参考\1
- 被捕获的组#1)。