Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google Site



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered By Powered by Google
 
Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 07-28-2008
Зарегистрированный пользователь
 

Регистрация: Jul 2008
Сообщений: 6
Массивы в AWK

Привет, я написал следующий код манипулировать первые 40 строк файла данных на моем желаемого порядка:

#! / BIN / AWK-F
(Если (NR <\u003d (4)) (
A [NR] \u003d A [NR] $ 0 "")
еще (IF ((NR> \u003d (5)) И И (NR <\u003d (13))) (
B [NR% 3] \u003d B [NR% 3] $ 0 "")
еще (IF ((NR> \u003d (14)) И И (NR <\u003d (25))) (
C [NR% 3] \u003d C [NR% 3] $ 0 "")
еще (IF ((NR> \u003d (26)) И И (NR <\u003d (40))) (
D [NR% 3] \u003d D [NR% 3] $ 0 "")
))))
END ((для (I в)
(печати [I]))
(для (Я в б)
(Печати B [I]))
(для (I в C)
(печати с [I]))
(для (I в D)
(печати D [I])))

Тем не менее, я хотел бы применить эту сортировку для каждого набора из 40 строк в файл данных, где данные файлы + 10000 строк. Я попытался препровождавшее весь код в один цикл, но для этого не работал, как A, B, C и D массивов в каждом блоке из 40 линий придется изменить также.

Может быть массивы численного имена, чтобы они могли быть увеличивается с каждым исполнением За цикл?

Большое спасибо
Рекламные ссылки
Old 07-28-2008
Зарегистрированный пользователь
 

Регистрация: Январь 2008
Сообщений: 55
Почему бы не передать 40 линий одновременно в AWK скрипта ..
Old 07-28-2008
Зарегистрированный пользователь
 

Регистрация: Jul 2008
Сообщений: 6
Вы подразумеваете под echo-ing/printing выбранной линии спектра, кормление, что в вышеупомянутой программе, а затем добавить выходной в другой файл?

Ура
Old 07-28-2008
 

Регистрация: Май 2008
Место проведения: Сидней, Австралия
Сообщений: 1009
Попробуйте это решение:


Код:
#!/bin/awk -f
function printem() {
        for (i in a) { print a[i] ; delete a[i] }
        for (i in b) { print b[i] ; delete b[i] }
        for (i in c) { print c[i] ; delete c[i] }
        for (i in d) { print d[i] ; delete d[i] }
}
{
        # use nr as the record number within this set of 40
        nr=NR%40

        if      (nr>=1  && nr<=4           ) a[nr  ]=a[nr  ]$0" "
        else if (nr>=5  && nr<=13          ) b[nr%3]=b[nr%3]$0" "
        else if (nr>=14 && nr<=25          ) c[nr%3]=c[nr%3]$0" "
        else if (nr==0  || nr>=26 && nr<=40) d[nr%3]=d[nr%3]$0" "

        if (nr==0) { printem() }
}
END { printem() }

Я изменил код макета немного надеяться сделать ее немного более читабельным. Он получает примерно вашу проблему, удалив содержимое массивов во время печати с тем, что они пустые на следующий набор из 40 записей.
Old 07-28-2008
Зарегистрированный пользователь
 

Регистрация: Jul 2008
Сообщений: 6
Спасибо, что он работал на лечение!! Только один вопрос ... ли:

NR \u003d NR 40%

просто требуют, чтобы первая группа из 40 линий должны обрабатываться в первую очередь, и последующие наборы после?
Old 07-28-2008
 

Регистрация: Май 2008
Место проведения: Сидней, Австралия
Сообщений: 1009
Нет, все это является присваивает модуль NR разделить на 40 на новую переменную, чтобы сохранить, не тип NR 40% вместо Nr В остальной части кода.
Рекламные ссылки
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся Вне


Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Нужна помощь с AWK и массивы fusionX Shell программирование и сценарии 7 02-11-2008 06:41 PM
AWK массивы imonthejazz Shell программирование и сценарии 1 09-21-2007 10:29 AM
массивов в AWK??? craigsky Shell программирование и сценарии 3 08-27-2007 10:13 PM
KSH и массивы whited05 Shell программирование и сценарии 1 06-24-2005 01:07 PM
Две или несколько массивов в Awk Нитин UNIX перспективных И опытных пользователей 1 12-10-2001 09:37 PM



Часовой пояс GMT -4. Текущее время 09:58 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX и Linux Форум Авторские права © 1993-2010 годов. Все права Reserved.Ad управление RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0