The UNIX and Linux Forums  

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



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

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Передача ценностей на вторичный сценарий, когда он ссылался начального сценария venu_eie UNIX перспективных И опытных пользователей 2 07-03-2008 08:10 AM
Передача ценностей на вторичный сценарий, когда он ссылался начального сценария venu_eie Shell программирование и сценарии 1 07-03-2008 07:16 AM
создать скрипт, требует еще и сценарий, и сценарий AWK magikminox Shell программирование и сценарии 0 06-26-2008 03:50 AM
помочь мне в передаче параметров из sqlplus скрипт для Unix шелл скрипт Хара Shell программирование и сценарии 2 01-29-2008 03:31 PM
Shell скриптов: хотите вставить значения в базу данных при обновление скрипта кольцо Shell программирование и сценарии 1 10-25-2007 04:06 AM

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 02-11-2009
Fedora fedora is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 94
Как это исправить AWK скрипта?

Я имею в лог-файл, а выглядит так

+ +
user_a blabla
blabla nas_b blabla user_d
это user_a
нежелательная линия
другая нежелательная линия
user_c nas_m blabla
+ +

в основном большинство строк содержат "пользователь" слова ", а остальную часть линии не имеют" пользователя "на всех.

Так что я имею следующий сценарий, который только выдержки пользователь части (если эта линия имеет пользователь ключевое слово) из каждой строки

AWK '(для (i \u003d 0; I <\u003d Н.Ф.; I + +)
если ($ I ~ / пользователь /)
A \u003d ($ I)
еще
(продолжать)
(печать)
) '/ TMP / испытание

и когда я бегу, я получил следующий результат

user_a
user_d
user_a
user_a #<\u003d\u003d\u003d фактически нет пользователей в том, что линия на всех.
user_c

почему это происходит и как я могу исправить моего скрипта? спасибо
Old 02-11-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
modérateur
  
 

Регистрация: Декабрь 2007
Место проведения: Дом 17-чемпион мира Бостон Celtics
Сообщений: 1311
Cool

Я думаю, это потому, что вы всегда печати ценность. Итак, вы не за-записи 'A' NI экземпляр 4-й линии, поэтому при печати переменных, вы получаете последнюю хранить ценности 'а'.
Возможно, в качестве первой линии Атера ваши другое, делать
Код:
a=""

с пустыми из последнего 'а' значения?
Old 02-11-2009
Fedora fedora is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 94
Я reliazed эту проблему, но мне кажется, я не могу решить эту проблему, вот модифицированный скрипт

AWK '(для (i \u003d 0; I <\u003d Н.Ф.; I + +)
если ($ I ~ / пользователь /)
A \u003d ($ I)
еще
(A \u003d "Нет")
(Продолжать)
(печать)
) '/ TMP / испытание

и выход к изменению

нет
user_d
user_a
нет
нет

что не соответствует действительности вообще.


Цитата:
Первоначально Послано joeyg View Post
Я думаю, это потому, что вы всегда печати ценность. Итак, вы не за-записи 'A' NI экземпляр 4-й линии, поэтому при печати переменных, вы получаете последнюю хранить ценности 'а'.
Возможно, в качестве первой линии Атера ваши другое, делать
Код:
a=""

с пустыми из последнего 'а' значения?
Old 02-11-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

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


Код:
awk '{ 
  for (i=1; i<=NF; i++)
    if ($i ~ /user/)
      print $i
      }' infile

С Perl:


Код:
perl -lne'print $1 while /(user[^\s]*)/g' infile

С GNU grep:


Код:
grep -o 'user[^ \t]*' infile

Old 02-11-2009
Fedora fedora is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 94
Спасибо, я знаю, в этом примере я дал, egrep является лучшим выбором, но на самом деле моя настоящая работа является "выяснение как" пользователь "и" нас "часть, а затем распечатать результат.

ниже, в результате я хочу

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+

Но проблема есть, независимо от того, насколько мне изменить мою сценарий, я просто не получить желаемый результат ...

[QUOTE \u003d radoulov; 302286540] С AWK:


Код:
awk '{ 
  for (i=1; i<=NF; i++)
    if ($i ~ /user/)
      print $i
      }' infile

С Perl:
Old 02-11-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
наркоман
  
 

Регистрация: Январь 2007
Местоположение: Варна, България / Милан, Италия
Сообщения: 2927
Цитата:
Первоначально Послано Fedora View Post
Спасибо, я знаю, в этом примере я дал, egrep является лучшим выбором, но на самом деле моя настоящая работа является "выяснение как" пользователь "и" нас "часть, а затем распечатать результат.

ниже, в результате я хочу

+
user_a nas_b
user_d nas_b
user_a
user_c nas_m
+
Я не понимаю логики ...
Почему user_d nas_b?
Old 02-11-2009
Fedora fedora is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 94
Прости, что была допущена опечатка
Closed Thread

Закладки

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

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

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

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




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