Здравствуйте. Помогите, пожалуйста, с написанием кода. На awk, sed или еще как-нибудь...
Имеется список IP адресов вида:
10.7.108.4
172.17.22.5
192.168.1.3
Необходимо вставить нули с тем, чтобы дополнить каждый октет до 3 символов. Таким вот образом:
010.007.108.004
172.017.022.005
192.168.001.003
Заранее спасибо большое за помощь!
Решено: Вопрос по shell programming (awk,sed)
Модераторы: /dev/random, Модераторы разделов
-
- Сообщения: 6
- ОС: RHAS5, Fedora Core 9, SLED11
Решено: Вопрос по shell programming (awk,sed)
In tux I trust:)
-
- Сообщения: 1073
- Статус: столлманист
- ОС: Debian GNU/Linux
Re: Решено: Вопрос по shell programming (awk,sed)
Код: Выделить всё
echo 122.155.55.1 | awk -F '.' '{printf("%03d.%03d.%03d.%03d", $1, $2, $3, $4)}'
"И может собственных Платонов и быстрых разумом Невтонов российская земля рождать."
М. В. Ломоносов
М. В. Ломоносов
-
- Сообщения: 6
- ОС: RHAS5, Fedora Core 9, SLED11
Re: Решено: Вопрос по shell programming (awk,sed)
Voice писал(а): ↑23.12.2008 11:20Код: Выделить всё
echo 122.155.55.1 | awk -F '.' '{printf("%03d.%03d.%03d.%03d", $1, $2, $3, $4)}'
Огромное Вам спасибо!! Все оказалось не так сложно даже


In tux I trust:)
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Решено: Вопрос по shell programming (awk,sed)
ну и на sed можно. только немного по другому.
Код: Выделить всё
$ echo '10.7.108.4
172.17.22.5
192.168.1.3
'| sed -r 's/[0-9]+/00&/g; s/[0-9]*([0-9]{3})/\1/g'
010.007.108.004
172.017.022.005
192.168.001.003