Pular para o conteúdo
,

SED: adicionar 1 string a cada 2 caracteres

Avatar de DK
DKTrabalha com Linux e Unix a mais de 23 anos e possui as certificações LPI 3, RHCE, AIX e VIO.

31 mar, 2010
1 min de leitura

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
Avatar de DK

Comentários

Comentários fechados para visitantes. Entre ou registre-se para comentar.

Ir para