LinuxForum.Fans
Тема

AWK

Автор: JIuM0H 7 сообщений 2386 просмотров
#190996

Всем привет! Нужна помощь по AWK

Есть БД, и она содержит вот такие данные:


Mike Harrington:(510) 548-1278:250:100:175
Christian Dobbins:(408) 538-2358:155:90:201
Susan Dalsass:(206) 654-6279:250:60:50
Archie McNichol:(206) 548-1348:250:100:175
Jody Savage:(206) 548-1278:15:188:150
Guy Quigley:(916) 343-6410:250:100:175
Dan Savage:(406) 298-7744:450:300:275
Nancy McNeil:(206) 548-1278:250:80:75
John Goldenrod:(916) 348-4278:250:100:175
Chet Main:(510) 548-5258:50:95:135
Tom Savage:(408) 926-3456:250:168:200
Elizabeth Stachelin:(916) 440-1763:175:75:300

Задание следуйщего характера:
1) Выведите все фамилии, начинающиеся с буквы D.
2) Выведите инициалы всех сотрудников.

Помогите пожалуйста

#191056

Чем помочь? За вас написать? Задавайте конкретные вопросы.

#191100

1) Выведите все фамилии, начинающиеся с буквы D.
я тут нашел как это сделать, но нужно отделить код телефона

awk '($2~/D/){print $2}' f-awk

2) Выведите инициалы всех сотрудников.
а тут вообще ничего не могу найти...

#191105
JIuM0H написал:
я тут нашел как это сделать, но нужно отделить код телефона

[console] awk -F ':' '{print $1}' test.txt | awk '($2~/^D/){print $2}'[/console]
...коряво, правда. :(

#191107

[console]% awk -F ':' '{print $1}' test.txt | awk '{print substr($1,1,1)" "substr($2,1,1)}'
M H
C D
S D
A M
J S
G Q
D S
N M
J G
C M
T S
E S[/console]

#191149

я так сделал
[console]awk -F ':' ' $1 ~ / D/ { $10=match($1, " "); $11=substr($1, $10); print $11 }' /home/mogul82/ww3[/console]
только почему то пробел появляется

#191738

Спасибо большое! smile

Войдите или зарегистрируйтесь, чтобы ответить.