Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
Soldier
- ст. сержант
- Сообщения: 364
- Зарегистрирован: 2008-10-02 9:28:30
Непрочитанное сообщение
Soldier » 2010-02-12 21:59:49
Привет всем.
Есть файл вида:
subnet1.*.*.*.asdfgh.10-5-87
subnet2.*.*.*.qwerty.10-9-20
subnet3.*.*.*.123456.10-14-20
вопрос в том как отобрать значение qwerty из второй строки без разделителя "."?
Заранее благодарен за ответ.
Tux: "Kill Bill !!!"
Soldier
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2010-02-13 1:55:57
awk посмотрите, там указывается разделитель (В вашем случае это точка). Потом выберите нужное вам поле. (В вашем случае $5)
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3
-
Soldier
- ст. сержант
- Сообщения: 364
- Зарегистрирован: 2008-10-02 9:28:30
Непрочитанное сообщение
Soldier » 2010-02-13 7:15:08
Нашел.
Спасибо за подсказку.
Код: Выделить всё
cat /path/to/file | grep subnet2
subnet2.*.*.*.qwerty.10-9-20
cat /path/to/file | grep subnet2 | awk "-F." '{print $5}'
Tux: "Kill Bill !!!"
Soldier
-
dikens3
- подполковник
- Сообщения: 4856
- Зарегистрирован: 2006-09-06 16:24:08
- Откуда: Нижний Новгород
-
Контактная информация:
Непрочитанное сообщение
dikens3 » 2010-02-13 18:18:57
а теперь ещё додумайтесь использовать только awk, файл легко подключить, а вот выборку subnet2 посложнее.
Вот раскопал что-то похожее:
Код: Выделить всё
awk -F\. '/subnet2/ {print($5)}' /path/to/file
Но я бы лучше избавился от поиска subnet2 по всем полям и искал сопадение в конкретном поле $1. Должно получиться что-то типа:
Код: Выделить всё
awk -F\. '$1=="subnet2" {print($5)}' /path/to/file
Лучше установить FreeBSD, чем потратить 30 лет на Linux'ы и выяснить какой из них хуже.
dikens3