awk прошу помощи

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: awk прошу помощи

Непрочитанное сообщение Bayerische » 2012-05-10 20:22:44

По первому заданию тупо в лоб

Код: Выделить всё

cat file.txt | awk '{print 1 " " $1}' | grep aaa ; cat file.txt | awk '{print 2 " " $2}' | grep aaa ; cat file.txt | awk '{print 3 " "  $3}' | grep aaa ; cat file.txt | awk '{print 4 " "$4}' | grep aaa ; cat file.txt | awk '{print 5 " " $5}' | grep aaa

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.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/

Andrey__S
проходил мимо

Re: awk прошу помощи

Непрочитанное сообщение Andrey__S » 2012-05-11 20:43:19

По первому можно проще
cat file | awk ' { for (i = 1; i <= NF; i++) print $i }' | awk '/aaa=/ { print }'
2-е пока ХЗ

Andrey_S
проходил мимо

Re: awk прошу помощи

Непрочитанное сообщение Andrey_S » 2012-05-11 23:15:33

2-е
cat file | awk '{for(i=1;i<=NF;i++) if ($i~/aaa/) {a=$i} else if ($i~/bbb/) {b=$i} else if ($i~/ccc/) {c=$i} else if ($i~/ddd/) {d=$i} else if ($i~/eee/) {e=$i}{print a,b,c,d,e}}'

aaa=1 bbb=2 ccc=3 ddd=4 eee=5
aaa=2 bbb=3 ccc=4 ddd=5 eee=1
aaa=3 bbb=4 ccc=5 ddd=1 eee=2
aaa=4 bbb=5 ccc=1 ddd=2 eee=3
aaa=5 bbb=1 ccc=2 ddd=3 eee=4

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: awk прошу помощи

Непрочитанное сообщение kpp » 2012-09-24 17:57:35

Где я был? ;)
По 1-му :

Код: Выделить всё

grep -o "aaa=[0-9]" file
По 2-му подумаю на досуге ;-)
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: awk прошу помощи

Непрочитанное сообщение kpp » 2012-09-25 12:47:40

2-е:

Код: Выделить всё

per_a="`grep -o "aaa=[0-9]" vhod`"
per_b="`grep -o "bbb=[0-9]" vhod`"
per_c="`grep -o "ccc=[0-9]" vhod`"
per_d="`grep -o "ddd=[0-9]" vhod`"
per_e="`grep -o "eee=[0-9]" vhod`"

lin=0
for i in ${per_a}
do
 lin=$((${lin}+1))
 echo "${i} \
`echo "${per_b}" | sed -n ${lin}p` \
`echo "${per_c}" | sed -n ${lin}p` \
`echo "${per_d}" | sed -n ${lin}p` \
`echo "${per_e}" | sed -n ${lin}p`"
done
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.

kpp
лейтенант
Сообщения: 613
Зарегистрирован: 2009-08-05 16:10:46
Откуда: Украина Днепропетровск-Киев
Контактная информация:

Re: awk прошу помощи

Непрочитанное сообщение kpp » 2012-09-25 13:38:58

Или так:

Код: Выделить всё

sed 's/\(^.*\)\(aaa=[0-9]\)\(.*\)/\2 \1\3/' vhod | tr -s "[ ]" |\
 sed 's/\([^ ]*\)\{1\}\(.*\)\([^b]*bbb=[0-9]\)\(.*\)/\1 \3\2\4/' | tr -s "[ ]" |\
 sed 's/\(\([^ ]* \)\{2\}\)\(.*\)\([^c]*ccc=[0-9]\)\(.*\)/\1\4 \3\5/' | tr -s "[ ]" |\
 sed 's/\(\([^ ]* \)\{3\}\)\(.*\)\([^d]*ddd=[0-9]\)\(.*\)/\1\4 \3\5/' | tr -s "[ ]"
Нет, ребята, я не гордый. Не загадывая вдаль, так скажу: зачем мне орден? Я согласен на медаль.