The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Запись рассчитывать основаны на ключевое слово в отчетах aemunathan Shell программирование и сценарии 4 03-03-2009 08:39 AM
Проверка файла основаны на условиях trichyselva Shell программирование и сценарии 8 01-02-2009 08:51 AM
Основываясь на количество записей в file1 нужно проверить записи в file2 установить некоторые condns mavesum Shell программирование и сценарии 3 11-26-2008 10:48 AM
Экстракт линий основана на нескольких условиях prvnrk Shell программирование и сценарии 4 10-17-2008 06:24 AM
Граф Нет записей в файл без подсчета Header и прицепов отчеты guiguy Shell программирование и сценарии 2 06-07-2007 01:15 PM

Reply
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 06-05-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
используя AWK рассчитывать нет записей основанных на условиях

Привет

У меня файлы с даты и времени, как имена папок, как 200906051400,200906051500,200906051600 ..... поэтому каждый день 24 файлов будет сгенерирован

Мне необходимо делать некоторые вещи на этой 24 файлов в день

Файл содержит данные, как
Код:
200906050016370   0   1244141195225298lessrv3       BSNLSERVICE1                  BSNLSERVICE1                  2128                                                        LOCATIONMANAGER          SLIR                 919443200299   MSISDN  ASC   919443200299   0   SUCCESS                                           1244141195225298less      919443200299        124414      79.301938811.6885305NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  
200906050016440   0   1244141197503299lessrv3       BSNLSERVICE1                  BSNLSERVICE1                  2139                                                        LOCATIONMANAGER          SLIR                 919449838266   MSISDN  ASC   919449838266   0   SUCCESS                                           1244141197503299less      919449838266        124414      74.739722013.3302837NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  
200906050017070   0   1244141224604306lessrv3       BSNLSERVICE1                  BSNLSERVICE1                  2128                                                        LOCATIONMANAGER          SLIR                 919448010097   MSISDN  ASC   919448010097   1   SYSTEM FAILURE                                    1244141224604306less      919448010097        124414                          NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  
200906050017110   0   1244141227460308lessrv3       BSNLSERVICE1                  BSNLSERVICE1                  2128                                                        LOCATIONMANAGER          SLIR                 919449838266   MSISDN  ASC   919448010098   1   SYSTEM FAILURE                                    1244141227460308less      919449838266   124414                          NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  

20090605140148        1204702370366140lessrv3                                     RTMS                          0                                                           TRACKING                 tlrep                                                            0   SUCCESS                                                                                         1                                                                                                                                                                                                                                                                                                                                     WGS84  
200906051402100   0   1195202147789210lessrv3       RTMS                          RTMS                                                                                      LOCATIONMANAGER          SLIR                 919446001620   MSISDN  ASC   919446001620   526 INACTIVE SUBSCRIBER                               1195202147789210less                          124419                          NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  
200906051402100   0   1195202147789210lessrv3       RTMS                          RTMS                                                                                      LOCATIONMANAGER          SLIR                 919446001618   MSISDN  ASC   919446001618   526 INACTIVE SUBSCRIBER                               1195202147789210less                          124419                          NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84  
200906051402100   0   1195202147789210lessrv3       RTMS                          RTMS                                                                                      LOCATIONMANAGER          SLIR                 919446001617   MSISDN  ASC   919446001617   526 INACTIVE SUBSCRIBER                               1195202147789210less                          124419                          NORMAL    DELAY_                                                                                                                                                                                                                                                                                      WGS84

Мне нужны скрипты для выполнения следующих
1. Приходится фильтровать записи основана на $ 4 и $ 6 (т.е. $ 4 \u003d\u003d BSNLSERVICE1 и $ 6 \u003d\u003d 2128) и подсчитать общий отчетов для ДЕНЬ (20090605 *)


OUTPUT НАДЛЕЖИТ:
BSNLSERVICE1 2128 \u003d\u003d 3


2. Приходится фильтровать записи основана на $ 4 и $ 6 (т.е. $ 4 \u003d\u003d BSNLSERVICE1 и $ 6 \u003d\u003d 2128) и подсчитать общий отчетов для ДЕНЬ (20090605 *) и группы в $ 14 (то есть успеха, FAILURE)


OUTPUT НАДЛЕЖИТ:
BSNLSERVICE1 2128 УСПЕХА \u003d\u003d 1
BSNLSERVICE1 2128 сбоя системы \u003d\u003d 2


3. Приходится фильтровать записи основана на $ 4 и $ 6 (т.е. $ 4 \u003d\u003d BSNLSERVICE1 и $ 6 \u003d\u003d 2128), группы на основе $ 9 (например, 919448010098, 919446001618), и подсчитать общее отчетов для ДЕНЬ (20090605 *) для каждого четко $ 9


OUTPUT НАДЛЕЖИТ:
919449838266 2
919448010097 1


вывод следует из $ 4 \u003d\u003d BSNLSERVICE1 и $ 6 \u003d\u003d 2128 только .. прочего ($ 4 \u003d\u003d RTMS) не требуется.

Помоги мне из PLS

Последний раз редактировалось aemunathan; на 06-05-2009 09:33 AM..
Old 06-05-2009
panyam panyam is offline Forum Advisor  
Зарегистрированный пользователь
  
 

Регистрация: Sep 2008
Сообщений: 474
то вроде этого, вы можете попробовать:
Код:
awk '$4=="BSNLSERVICE1"&&$6=="2128" { count++ } END { print "BSNLSERVICE1-->2128-->" count }'  file_name.txt
Остальные также практически одинаковы. только немного изменений в скрипте необходимо.
Old 06-05-2009
Franklin52 Franklin52 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2007
Сообщения: 4309
Попробуйте это:

Код:
awk -v day="20090605" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
  s1++;a[$14]++;b[$9]++
}
END{
  print serv,val, "=" s1 "\n"
  print serv,val, a["SUCCESS"]
  print serv,val, a["SYSTEM"] "\n"
  for(i in b){print i, b[i]} 
}' file
Привет
Old 06-05-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
Привет panyam и Франклин

Я следил за метод, предложенный panyam ее предоставления полезного результата.

Вот он идет, как в порядке, я просил.

Код:
1.
awk '$4=="BSNLSERVICE1"&&$6=="2128" { count++ } END { print "BSNLSERVICE1-->2128-->" count }' 20090604*

2. 

awk '$4=="BSNLSERVICE1"&&$6=="2128"{ b[$14]++}  END {for(i in b){print i, b[i]}  }' 20090604*

3.
awk '$4=="BSNLSERVICE1"&&$6=="2128"{ b[$9]++}  END {for(i in b){print i, b[i]}  }' 20090604*
Одно дело я должен знать, возможно ли его для получения файла с момента команды.

на самом деле мне нужно запланировать его каждую ночь в 2:00, и мне нужно для получения файла с момента команда

позволяет взять пример
сегодня 2.00 утра ouput из
Код:
date +'%Y%m%d'
является 20090606
Мне нужно дать имя файла 20090605 * в имени файла часть из AWK ...


и Франклина .... я использовал этот способ
Код:
#!/usr/xpg4/bin/awk 
awk -v day="20090605" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
  s1++;a[$14]++;b[$9]++
}
END{
  print serv,val, "=" s1 "\n"
  print serv,val, a["SUCCESS"]
  print serv,val, a["SYSTEM"] "\n"
  for(i in b){print i, b[i]} 
}' 200906051859
и получил ответ, как
Цитата:
. / reconcil.sh
/ usr/xpg4/bin/awk: синтаксическая ошибка контексте:
>>>. / <<<
благодарю U
Old 06-05-2009
Franklin52 Franklin52 is offline Forum Staff  
Модератор
  
 

Регистрация: Февраль 2007
Сообщения: 4309
Чтобы получить дату вчера вы можете использовать datecalc сценарий Perderabo.
Поместите этот сценарий в той же директории вашего скрипта с именем datecalc и сделать его исполняемым:

дней прошло между датами 2

Ваш скрипт должен выглядит следующим образом:

Код:
#!/bin/ksh

dat=$(./datecalc -a $(date +"%Y %m %d") - 1)

day=$(/usr/xpg4/bin/awk -v d="$dat" 'BEGIN {split(d,a," ");day=sprintf("%s%02s%02s",a[1],a[2],a[3]);print day}')

/usr/xpg4/bin/awk -v d="$day" -v serv="BSNLSERVICE1" -v val="2128" '
$1 ~ day && $4==serv && $6==val {
  s1++;a[$14]++;b[$9]++
}
END{
  print "Filename: " FILENAME "\n"
  print serv,val, "=" s1 "\n"
  print serv,val, a["SUCCESS"]
  print serv,val, a["SYSTEM"] "\n"
  for(i in b){print i, b[i]} 
}' $day*
Биты Награжден / Отнесено на Franklin52 этой темы
Свидание Пользователь Комментировать Сумма
06-06-2009 aemunathan Отличная работа, проделанная 50.000
Old 06-06-2009
aemunathan aemunathan is offline
Зарегистрированный пользователь
  
 

Регистрация: Май 2008
Сообщений: 75
Привет

Огромное спасибо человеку ... ее приятно видеть результат ...

Мне нужно больше информации. фактически используется sqlloader вставить результат в виде таблицы. Здесь я хочу напечатать предыдущей дате, а в ДД-МЕС-ГГГГ формате

Я пробовал так
Код:
#!/bin/ksh

dat=$(./datecalc -a $(date +"%Y %m %d") - 1)

da_te=$(date +'%d')

da=$(($da_te-1))

mon=$(date +'%b')

year=$(date +'%Y')

host=$(hostname)

day=$(/usr/xpg4/bin/awk -v d="$dat" 'BEGIN {split(d,a," ");day=sprintf("%s%02s%02s",a[1],a[2],a[3]);print day}')

/usr/xpg4/bin/awk -v d="$day" -v serv="BSNLSERVICE1" -v val="2128"  -v daet="$(($da)-($mon)-($year))" -v ho="$host"'
$1~day && $4==serv && $6==val {
  s1++
}
END{
  print daet, host,s1 
}' $day*
Помощь меня!!!! Доклад состоит из предыдущий день и поэтому я нужно использовать предыдущую дату во время печати.
Спасибо заранее

Последний раз редактировалось aemunathan; на 06-07-2009 02:36 PM.. Причина: еще одно требование !!!!!!
Reply

Закладки

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

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

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

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




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


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