signout
(usa Slackware)
Enviado em 25/04/2017 - 20:05h
Boas...
Um tempo atras tive que fazer algo parecido....
Segue o script que eu utilizei, com as alterações para o seu caso...
#!/bin/bash
line="0"
while read line ini
do
line=`expr $line + 1`
echo $ini
case ${ini} in
"1")
sed "$line s/.\{8\}/&1/" arquivo
;;
"2")
sed "$line s/.\{11\}/&2/" arquivo
;;
"3")
sed "$line s/.\{14\}/&3/" arquivo
;;
*)
;;
esac
done < <(awk '{print NR-1" "substr($0,6,1)}' arquivo)
Algumas observações:
1 - As linhas do sed estao sem a opção -i (se voce executar, mostrara na tela, mas o arquivo não será alterado.)
2 - O numero entre chavez {X} é a posição onde será inserido o caracter que esta depois do &
3 - Se voce executar mais de uma vez, os campos ficarao com caracteres repetidos (11 ao inves de 1, 22 ao inves de 2, etc)
4 - O script foi alterado baseados nas informações que voce deu.
Espero que ajude.
[]s