Отправляет email-рассылки с помощью сервиса Sendsay

Разбор строки на bash

Здравствуйте.

Мне надо в скрипте на bash/shell, или как там этот язык правильно называть, получать
в переменную адреса из System.map, но без названий самих функций.

Т.е. из файла

8010bf00 T sys_fork
8011ffff T sys_read

надо получить строки

8010bf00
8010bfff

С помощью grep не получается, т.к. в моём линуксе у grep отсутствует параметр
-o.

Может быть есть ещё какие-то параметры у grep для того, чтобы выдавалась не вся
строка, а только её часть, соответствующая регулярному выражению?

Хочу сделать с помощью поиска пробелов, т.е. считывать по 1 символу, и когда
найдётся 3 пробела, считывать очередной адрес из 8 символов.

Как в операторе if проверить, является ли символ пробелом?

Можно ли решить эту задачу с помощью каких-то утилит кроме grep?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28012; Возраст листа: 1159; Участников: 1707
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/594451

Ответить   "Denis Silin" Tue, 26 Sep 2006 17:00:53 +0400 (#594451)

 

Ответы:

gawk -F' ' '{ print $1 }' system.map )) и все)

On 9/26/06, Denis Silin <denis.sil***@s*****.ru> wrote:

Ответить   Tue, 26 Sep 2006 17:07:10 +0400 (#594454)

 

On Tue, 26 Sep 2006 17:00:53 +0400
"Denis Silin" <denis.sil***@s*****.ru> wrote:

[зажевало]

Можно. Есть такая штука, как cut.
Напимер:
cut -f 1 -d ' ' /boot/System.map-2.6.16-2-k7

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28015; Возраст листа: 1159; Участников: 1707
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/594473

Ответить   Matviychuk Oleg Tue, 26 Sep 2006 16:15:24 +0300 (#594473)

 

В сообщении от 26 сентября 2006 17:00 Denis Silin
написал(a):

cat System.map | while read addr sec name
do
# адрес в $addr, секция в $sec, имя в $name
done

Ответить   "Sergey B. Khvatov" Tue, 26 Sep 2006 17:26:43 +0400 (#594476)

 

addrs=`sed 's/ .*//' < System.map`
:)

On Втр 26, Denis Silin wrote:

получать

Best regards,
vjp7 <vj***@g*****.net>

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28023; Возраст листа: 1160; Участников: 1706
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/594686

Ответить   vjp7 Wed, 27 Sep 2006 08:10:47 +0400 (#594686)