muda o terceiro caractere em uma linha

1

entrada:

dummy - 22847847
sha - 84734747
DHS - 374874

resultado esperado:

du1my - 22847847
sh1 - 84734747
DH1 - 374874
    
por akhil jahagirdar 31.07.2018 / 07:37

2 respostas

3

$ cat test.txt
dummy - 22847847
sha - 84734747
DHS - 374874

$ awk '{$3=1}1' FS="" OFS="" test.txt
du1my - 22847847
sh1 - 84734747
DH1 - 374874
    
por 31.07.2018 / 10:14
3

com sed :

sed 's/^\(..\).//' infile > expected_result

O (..) é conhecido como uma correspondência de grupo e captura os dois primeiros caracteres, e a é sua referência anterior. o ponto . na expressão regular corresponde a qualquer caractere único.

se não fosse 3 rd lugar mas N th , você poderia fazer o seguinte para alterar o caractere de lugar 3 rd com 1 .

sed 's/^\(.\{2\}\).//' infile

Ou apenas abaixo, conforme indicado por @steamdriver :

sed 's/./1/3' infile
    
por 31.07.2018 / 07:44