Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с AWK? Как работать с AWK? 
:(
    Опции темы
Leoo
Дата 29.11.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 270
Регистрация: 3.10.2005
Где: г. Обнинск

Репутация: нет
Всего: 3



Я не могу написать программу на AWK.
задание такое:

есть два файла с одинаковай структурой

например :

файл 1
Иванов Иван Иванович
Петров Петр Петрович
и т.д.

файл 2
тоже самое только другие фамилии

мне надо поменять местами четные строки
как это сделать?

Помогите плиз!


--------------------
Если вы не страдаете паранойей, это не значит, что они за вами не летят!
PM MAIL WWW ICQ   Вверх
bilbobagginz
Дата 29.11.2005, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



awk - простая в обращении программа. в ней есть автоматические переменные,
по ней есть море информации в сети.

awk используют либо для обработки потока с stdin и вывода на stdout (когда есть только 1 строка awk-а):

awk -F: '{ print $2; }' file.txt | grep "paoapoapoa" | wc -l
или запуская скрипт:
awk -f awk.script file.txt | grep "paoapoapoa" | wc -l



задача нe понятна: если есть n строк, то есть n/2 четных, и поменять их местами есть довольно много мозможностей [(n/2)!]...
как именно ? можно ли создавать временные файлы ? можно ли предположить одинаково-строчье ?!

пока.

Это сообщение отредактировал(а) bilbobagginz - 29.11.2005, 04:14


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
comcon1
Дата 3.12.2005, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Я обычно ставлю awk конвеером вот так -- вырезка из моего скрипта:
Код

cat $1 | awk '
BEGIN {
  nuke = 0;
  puke = 0;
  print "Restricted with awk. --(om(on--.";
  print "  16.X.2005 ";
}
 {
 if ( NF == 1 ) {
  nuke = 0;
  puke = 0;
}

 if ( ( nuke == 1 ) && ( NF == 5 ) && (puke != 1) ) {
   printf "\n\n----------\n";
   puke = 1;
 }
 else
   nuke = 0;

 if ( $0 ~ "\\a*------------------------------------------------------------\\a*" )
   nuke = 1;

 if ( puke == 1)
  print $0;\

 }
 ' > $1.gwk;

Это для примера.
-- Есть блок выполняющийся вначале BEGIN {}, в конце END {}, и собственно тело {}.
-- Блок {} выполняется применительно к каждой строке.
-- Переменные определяются присваиванием, как в PHP, к примеру.
-- $1 $2 $3 ... - строка разбитая на слова. Каждое слово помещается в переменную $n.
-- NF - количество слов в слове.
-- Вся строка помещается в переменную $0.
Вот это ---
Код

 $0 ~ "\\a*------------------------------------------------------------\\a*" 

-- означает проверку на соответствие регулярному выражению.

...
Пеши есчо вопросы.

Это сообщение отредактировал(а) comcon1 - 3.12.2005, 09:27


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.