输入:
dummy - 22847847
sha - 84734747
DHS - 374874
预期输出:
du1my - 22847847
sh1 - 84734747
DH1 - 374874
答案1
$ cat test.txt
dummy - 22847847
sha - 84734747
DHS - 374874
$ awk '{$3=1}1' FS="" OFS="" test.txt
du1my - 22847847
sh1 - 84734747
DH1 - 374874
答案2
和sed
:
sed 's/^\(..\)./\11/' infile > expected_result
称为(..)
组匹配,它捕获前两个字符,并且\1
是其反向引用。正.
则表达式中的点匹配任何单个字符。
如果不是第 3位而是第 N个,您可以按照以下步骤将第 3位字符更改为1
。
sed 's/^\(.\{2\}\)./\11/' infile
或者就像下面指出的那样@steeldriver:
sed 's/./1/3' infile