Você pode usar
sed 's/^\(..\)@\(.*\)//'
A seguinte sintaxe de sed exclui o primeiro caractere @
se ele existir em uma string:
sed 's/^@\(.*\)//'
Mas como alterá-lo para excluir o caractere @
somente se estiver na posição terceiro ?
Por exemplo, eu precisaria excluí-lo na seguinte linha:
AB@CDEF
Eu preciso do script para verificar se o terceiro caractere é @
e, em caso afirmativo, excluí-lo da linha.
Para generalizar para qualquer personagem em qualquer posição, n
:
sed 's/^\(.\{2\}\).//'
que exclui o terceiro caractere. Basta alterar o número "2" para n-1
.
Você pode usar uma variável como esta:
n=2
echo "$line" | sed "s/^\(.\{${n}\}\).//"
% sed -e '/^..@/ { s,^\(..\)@,, }'
significa: