Как переформатировать адреса MA C, используя sed? - PullRequest
1 голос
/ 27 апреля 2020

У меня есть адрес MA C в стандартном формате :, например, 08: f1: ea: 6d: 03: 3 c, который я хотел бы распечатать в виде трех комплектов из четырех шестнадцатеричных цифр, разделенных ., например 08f1.ea6d.033 c

Я пытался echo 08:f1:ea:6d:03:3c | sed 's/://g', но при этом получается: 08f1ea6d033 c.

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 апреля 2020

Возьми то, что у тебя есть, и добавь 's/.\{4\}/&./g;s/.$//' к выражению sed. Все вместе, это:

echo 08:f1:ea:6d:03:3c | sed 's/://g;s/.\{4\}/&./g;s/.$//'

Как вы заметили, ваше выражение sed удаляет все : s; ;s/.\{4\}/&./g добавляет . после каждых четырех цифр, а ;s/.$//' удаляет завершающий ., добавленный предыдущим выражением.

...