Unix ksh 替换变量的倒数第二个字符
Unix ksh replace 2nd to last character of a variable
我在使用 Korn Shell 的 UNIX 系统上。我是 UNIX 初学者。这是我想要做的:
var1=user/hYbMj8d@RM1
我只想替换倒数第二个字母,如果重要的话,它总是 M
,然后将其更改为 O
,并将其存储为新的它变成一个新变量。
因此新变量将包含:
var2=user/hYbMj8d@RO1
用 sed
试试这个:
sed 's/M\(.$\)/O/'
在 var2
中存储更新的 var1
的完整解决方案:
var2=`echo $var1 | sed 's/M\(.$\)/O/'`
解释:使用sed
替换命令:s/<find>/<replace>/
。它搜索 M.$
模式,其中 $
是 EOL - 因此它将是末尾的第二个字符。然后它捕获 M
字符后的余数(转义括号 - 在 sed
捕获组中应该转义)并将其替换为 O
字符和 M
后的余数 - 捕获的内容(它是特殊参考
- 捕获组 #1).
我在使用 Korn Shell 的 UNIX 系统上。我是 UNIX 初学者。这是我想要做的:
var1=user/hYbMj8d@RM1
我只想替换倒数第二个字母,如果重要的话,它总是 M
,然后将其更改为 O
,并将其存储为新的它变成一个新变量。
因此新变量将包含:
var2=user/hYbMj8d@RO1
用 sed
试试这个:
sed 's/M\(.$\)/O/'
在 var2
中存储更新的 var1
的完整解决方案:
var2=`echo $var1 | sed 's/M\(.$\)/O/'`
解释:使用sed
替换命令:s/<find>/<replace>/
。它搜索 M.$
模式,其中 $
是 EOL - 因此它将是末尾的第二个字符。然后它捕获 M
字符后的余数(转义括号 - 在 sed
捕获组中应该转义)并将其替换为 O
字符和 M
后的余数 - 捕获的内容(它是特殊参考 - 捕获组 #1).