The UNIX and Linux Forums  


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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Является Там один Sed решение для этого? racbern Shell программирование и сценарии 1 03-13-2008 11:31 AM
необходимо решение для скриптов kkc Shell программирование и сценарии 14 01-31-2008 09:17 PM
Солнце и резервное решение Jshwon SUN Solaris 1 10-23-2007 01:54 PM
Grep решения Amruta Pitkar Shell программирование и сценарии 3 05-03-2007 03:57 AM
Linux в качестве НАН решение? kjbaumann Linux 1 08-30-2006 01:09 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 03-06-2008
timj123 timj123 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 80
Есть ли AWK решение для этого??

Я написал скрипт, который AWK собирает некоторые данные из определенных полей. Мне необходим AWK решение для этого, потому что это будет позже стал функции в сценарии.

У меня имеются следующие данные, которые мне нужны вывода на одной линии, но отчет охватывает всей multilple строк и записей, не "вместе". Пример будут Tom ниже записи "Томь" ниже на 4 разных линий, но только данные с 2 линиями, я буду также необходимость того же информация для PAT, Тим, и ребенок, или тот, кто еще есть запись, как формат ниже.


Код:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group

Мне необходимы следующие результаты:


Код:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Есть ли AWK решение этого??

Заранее благодарим Вас за это, потому что я считаю, что это трудно.
Old 03-11-2008
timj123 timj123 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 80
Цитата:
Первоначально Послано timj123 View Post
Я написал скрипт, который AWK собирает некоторые данные из определенных полей. Мне необходим AWK решение для этого, потому что это будет позже стал функции в сценарии.

У меня имеются следующие данные, которые мне нужны вывода на одной линии, но отчет охватывает всей multilple строк и записей, не "вместе". Пример будут Tom ниже записи "Томь" ниже на 4 разных линий, но только данные с 2 линиями, я буду также необходимость того же информация для PAT, Тим, и ребенок, или тот, кто еще есть запись, как формат ниже.


Код:
2008   fl01   LAC   2589   polk   doal
xx 2008q1 mx
     sect 25698541

     Sales 08 Dept group

        lead1    2008q1
        tom
        pat
        tim
        tad

        lead1  07q4   07q3   07q2   07q1   06q4   06q3   jan
        tom    0      96     0      3312   3624   0      312
        pat    0      17     0      0      30     0      30
        tim    357    03     04     25     3020   3120   20
        tad    1734   0      0      0      5213   5213   0

        lead1  feb    mar    apr    may    jun    jul    aug
        tom    0      96     0      0      0      0      0
        pat    0      17     0      0      0      0      0
        tim    357    23     5      7      8      14     70
        tad    1734   0      0      0      0      0      0

        lead1  sept   oct    nov    dec
        tom    0      0      460    92
        pat    0      0      240    0
        tim    0      21     1800   0
        tad    0      0      672    0

2008   fl01  LAC   2589    polk   doal
yy 2008q1 mx
     sect 2569852

     Sales 08 Dept group

Мне необходимы следующие результаты:


Код:
lead1   07q4    07q1    06q4    06q3    sept    oct     nov
tim	357	25	3020	3120	0	21	1800 
tad	1734	0	5213	5213	0	0	672

Есть ли AWK решение этого??

Заранее благодарим Вас за это, потому что я считаю, что это трудно.
помощь там для этого, пожалуйста?
Old 03-12-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

Регистрация: Январь 2007
Местоположение: Варна, България / Милан, Италия
Сообщения: 2915

Код:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Вы можете добавить пользователей в схеме: Tim | TAD | Pat т.д.
Использование nawk / или usr/xpg4/bin/awk на Solaris.
Old 03-13-2008
timj123 timj123 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 80
Цитата:
Первоначально Послано radoulov View Post
Код:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1)
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\n", p[$1], $2, $3, $4 
 }
}' users="tim|tad" file

Вы можете добавить пользователей в схеме: Tim | TAD | Pat т.д.
Использование nawk / или usr/xpg4/bin/awk на Solaris.
Это прекрасно работает, я действительно ценю помощь по этому вопросу, но то, что, если я хотел бы подытожить, колонны 07q4 и 07q1, а затем положить, что стоимость на конец отчетного printf заявление? Наличие проблем в этой части. Можете ли вы помочь?
Old 03-13-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

Регистрация: Январь 2007
Местоположение: Варна, България / Милан, Италия
Сообщения: 2915

Код:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file

Old 03-13-2008
timj123 timj123 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 80
ОК, я чувствую себя глупо сейчас.
Еще раз спасибо Су многое спасти меня около недели стоит разочарование.
Я понимаю, мне нужно посмотреть, как эти вопросы под другим углом зрения.
Old 03-13-2008
aspect_p aspect_p is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2008
Сообщений: 13
Цитата:
Первоначально Послано radoulov View Post
Код:
awk 'NR == 1 { print "lead1   07q4    07q1    06q4    06q3    sept    oct     nov     tot" }
$1 ~ "^("users")$" && NF > 1 { 
x[$1]++
if (x[$1] == 1) {
  p[$1] = sprintf ("%s\t%s\t%s\t%s\t%s", $1, $2, $5, $6, $7)
  t[$1] = $2 + $5
}
if (x[$1] == 3) {
  printf "%s\t%s\t%s\t%s\t%d\n", p[$1], $2, $3, $4, t[$1] 
 }
}' users="tim|tad" file
Можете ли вы пойти чуть дальше в AWK, описывающих методы, используемые в скрипте, им жаль быть беспокоить, но то, как это может быть HUGE туз в своем арсенале оболочки сценариев.
Closed Thread

Закладки

Теги
Solaris

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

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

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

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




Часовой пояс GMT -4. Текущее время 02:47 AM.


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

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