SED: adicionar 1 string a cada 2 caracteres

Estou colocando aqui um exemplo que pode ser adaptado para sua necessidade.

No caso, essa linha adiciona o caracter “:” (sem as aspas) a cada 2 caracteres.

Utilizei para formatar uma lista enorme de MAC address que me foi passado no formato 00106037614C

O arquivo texto original continha várias linhas:

Arquivo: mac1.txt

001060376173
001060376124
00106037614C
001060374840
001060376125
00106037612A
001060376176
001060375D9A
001060375D97

E executando sed, na linha abaixo

sed -e :a -e 's/\(.*[0-9,A-Z]\)\([0-9,A-Z]\{2\}\)/\1:\2/;ta' mac1.txt > mac2.txt

O resultado que foi direcionado para o arquivo mac2.txt é o desejado:

00:10:60:37:61:73
00:10:60:37:61:24
00:10:60:37:61:4C
00:10:60:37:48:40
00:10:60:37:61:25
00:10:60:37:61:2A
00:10:60:37:61:76
00:10:60:37:5D:9A
00:10:60:37:5D:97
Share this post

Join the conversation