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 Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Shell скрипт для извлечения текста из файла vignesh53 Shell программирование и сценарии 3 02-05-2008 08:16 AM
Сообщить о файле добычи основаны на дату ganapati Shell программирование и сценарии 2 07-13-2006 12:26 PM
Дата-извлечения из файла в KSH homer_hn Shell программирование и сценарии 6 04-21-2006 02:51 AM
Нужна помощь добавлением строк / объединения строк в файл ... mr_manny Shell программирование и сценарии 2 01-06-2006 06:45 PM
Файл справки по добыче apalex UNIX для чайников Вопросы И Ответы 1 05-01-2001 11:29 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 04-27-2008
srsahu75 srsahu75 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 15
Добыча различных линий с Хью файл

Уважаемые члены,
У меня есть огромный файл, порожденных команду "WHOIS" для сотен IP-адресов. Каждый раздел файла начинается с [Запрос WHOIS

Я хочу, чтобы извлечь эти строки, которые начинаются с любой из этих слов: [Запрос WHOIS, OrgName, NetRange, inetnum, описание, владелец, страна в этом разделе.

Введите:

[Запрос whois.XJHIOUIIOOPIOP]


OrgName: Университет C
OrgID: U1
Адрес: ОИТ
Адрес: NH
Город: BC
StateProv: XY
Почтовый индекс: 000000
Страна: MN

NetRange: XXX.YYY.MN - XXX.YYY.MQ
CIDR: LMANERIE
NetName: UC


[Запрос whois.ABCE.TSD]

% Человека ограничен авторскими правами.
% См.

% Примечание: Этот вывод был отфильтрованы.
% Чтобы получить выход для обновления базы данных, использовать "-B" флаг


inetnum: XXX.YYY.MN - XXX.YYY.MQ
netname: NET-C
Описание: HB
Описание: Университет
Страна: PQ
Admin-C: TYE
тек-с: SDF
Статус: FGRG
по шоссе: FSDGFG
Источник: FGDFSG

роль: OPRROKROTR
Адрес: Университет
Адрес: DJFIEJRE
Адрес: DIJAIRJEJ
Адрес: EIREROERE

Необходимый вывод:

[Запрос whois.BUHIOUJIOU]
OrgName: HHHHHHHHHH (может быть или нет)
NetRange: TTTTTTTTT (может быть или нет)
inetnum: FTYFYYYUII (может быть или нет)
Описание: HIJKJKLLKL (она будет лучше, если только первое появление)
Владелец: JHKJOJOIPI (может быть или нет)
Страна: OIOPOPOP (1 появления)

Поблагодарив вас
Что касается
Old 04-27-2008
эпоха era is offline Forum Advisor  
Гердер бесполезных Кошки (В субботний)
  
 

Регистрация: Mar 2008
Местоположение: / там / это / только / BIN / ш
Сообщений: 3652
Различные регистраторы используют различные форматы вывода. Итак, если вы не запросив весьма ограниченный набор доменов, например, все домены регистрируются одно лицо, или по другим причинам, все зарегистрированные в этом же регистратора или только небольшой набор регистраторов, это может оказаться более сложным, чем вы думали .

Возможно, было бы целесообразно в качестве первого шага на отдельные записи в разные файлы в зависимости от [Запрос ... линию? Попробуйте csplit Команда за это. Затем вы можете создать парсер для каждого из форматов, вы найдете здесь.

Как вы знаете, когда остановиться? Часто запись будет включать иерархической информации (особенно для ARIN информацию, которая является то, что ваш пример ABCE.TSD похоже), в котором позже линий более конкретным, чем предыдущие. Тогда вам часто требуется позже линий, а не ранее. (Но это зависит от того, что вам нужно для этого, конечно же.)

Во всяком случае, здесь, в попытке осуществления текущей спецификации. Это просто выбирает первый из ничего после Запрос строки:

Код:
perl -ne 'if (/^\[Querying/) {
  print; @wanted = qw(OrgName NetRange inetnum descr owner Country);
  $wanted = &wanted(@wanted);
}
sub wanted {
  return "^(" . join ("|", map { quotemeta $_ } @_) . "):";
}
if ($wanted && $_  =~ m/$wanted/i) {
  print;
  @wanted = grep { $_ ne $1 } @wanted;
  $wanted = @wanted ? &wanted(@wanted) : "";
}' file
Это вышло чуть более чудовищный, чем я хочу ей быть, а может быть, вы можете использовать его в качестве отправной точки.

(Оглядываясь назад, возможно, было бы лучше использовать хэш отслеживать ценностей, которые уже захватили, а не захвата, если хэш говорится у нас уже есть один мы рассматриваем. Задвиньте захватили один из них в случае сохранения массива тем имеет важное значение.)

Последний раз редактировалось эры; на 04-27-2008 08:53 AM.. Основание: Добавить / I флага внести соответствующие игнорировать дело
Old 04-29-2008
srsahu75 srsahu75 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 15
Привет,
Большое спасибо за помощь. Этот сценарий является очень полезным до 70% моих потребностей. Я буду пытаться делать что-то для отдыха из моих 30%.

Поблагодарив вас
Что касается
Сатьи
Old 05-05-2008
srsahu75 srsahu75 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 15
Уважаемые Эры,
Я хочу, чтобы сценарий должен принимать входной файл в качестве переменной, а в качестве выходного файла. У меня есть два текстовых файлов: (1) список папок, в которых следует работать скрипт (2) Список входных файлов, по которым скрипт должен работать.
Из-за отсутствия Perl знание Я попытался безуспешно. В Shell скрипт я использую:

Я в `(CAT countries.txt)`
делать

для J в `(CAT year.txt)`

делать

Для K в `(кошки страны / $ I / $ J)`

делать



Те же образом я хочу, чтобы Perl Сценарий принять inputfile переменными

Спасибо
Old 05-05-2008
эпоха era is offline Forum Advisor  
Гердер бесполезных Кошки (В субботний)
  
 

Регистрация: Mar 2008
Местоположение: / там / это / только / BIN / ш
Сообщений: 3652
Что касается корпуса кодирование стиля, в скобках указаны полностью нет необходимости, и прочее в backticks работает плохо, если есть имя файла с пробелами в нем.

Я не понимаю, почему вы не можете использовать этот скрипт, чтобы оберните Perl код; ничего нет, которая существует много Perl делает лучше, чем корпуса, помимо, не читать страны файл снова и снова (но можно оптимизировать, что в скрипт, тоже). Но во всяком случае, здесь идет. Боюсь, это абсолютно непроверенными.

Код:
#!/usr/bin/perl

die "Usage: $0 dir yearfile countryfile" unless (@ARGV == 3);

open (Y, "$ARGV[1]") || die "$0: Could not open $ARGV[1]: $!\n";
open (C, "$ARGV[2]") || die "$0: Could not open $ARGV[2]: $!\n";
my @countries = <C>;
close C;
while ($year = <Y>) {
  for $country (@countries) {
    handle ("$ARGV[0]/$year/$country");
  }
}
close Y;

sub handle {
  my ($file) = @_;
  open (F, $file) || die "$0: Could not open $file: $!\n";
  while (<F>) {
    if (/^\[Querying/) {
      print; @wanted = qw(OrgName NetRange inetnum descr owner Country);
      $wanted = &wanted(@wanted);
    }
    if ($wanted && $_  =~ m/$wanted/i) {
      print;
      @wanted = grep { $_ ne $1 } @wanted;
      $wanted = @wanted ? &wanted(@wanted) : "";
    }
    close F;
  }
}  
sub wanted {
  return "^(" . join ("|", map { quotemeta $_ } @_) . "):";
}
Old 05-07-2008
srsahu75 srsahu75 is offline
Зарегистрированный пользователь
  
 

Регистрация: Январь 2008
Сообщений: 15
Большое спасибо за код

Привет
Closed Thread

Закладки

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

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

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

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




Часовой пояс GMT -4. Текущее время 02:39 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