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 Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Сопоставление полей строк, а затем операционная ashis.tewari Shell программирование и сценарии 3 12-04-2008 09:02 AM
Сумма всех соответствие строк с использованием AWK i.scientist UNIX для чайников Вопросы И Ответы 8 08-06-2008 08:13 PM
Как удалить дубликаты строк в файле vamshikrishnab Shell программирование и сценарии 5 06-18-2008 10:00
Как удалить частности, строки из файла suresh3566 Shell программирование и сценарии 5 06-02-2008 05:07 AM
Удалить повторные строки из файла tonet Shell программирование и сценарии 8 04-08-2008 09:42 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 03-19-2009
Юха Juha is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 36
SED: удалить строку соответствия и 4 следующего строк?

Привет,

Попытка найти решение, и нашли нечто подобное, но не смогли адаптировать решение для моих нужд ..

Я пытаюсь соответствовать шаблону (в данном случае "ProcessType") в лог-файл, а затем удалить эту линию и 4 следующего содержания.

В лог-файл выглядит следующим образом:
Код:
ProcessType:    PROCESS_A (0) <---- delete this
SequenceNumber: 8285 <---- delete this
 <---- delete this
2009 Mar 07  22:04:23:679   0:8285 <---- delete this
 <---- delete this
ProcessType:    PROCESS_A (0)
SequenceNumber: 8286

2009 Mar 07  22:04:23:679   0:8286

ProcessType:    PROCESS_B (68)
SequenceNumber: 40689

2009 Mar 07  22:04:23:698  68:40689

DATA that should not be deleted

ProcessType:    PROCESS_B (68)
SequenceNumber: 40690

2009 Mar 07  22:04:23:698  68:40690

DATA that should not be deleted

ProcessType:    PROCESS_C (93)
SequenceNumber: 36235

2009 Mar 07  22:04:23:829  93:36235

ProcessType:    PROCESS_C (93)
SequenceNumber: 36236

2009 Mar 07  22:04:23:829  93:36236

DATA that should not be deleted
Я пробовал так:

Код:
sed -e '/\<ProcessType\>/,/$/d' < log.txt > test
Но это только в результате этого:

Код:
2009 Mar 07  22:04:23:679   0:8285


2009 Mar 07  22:04:23:679   0:8286


2009 Mar 07  22:04:23:698  68:40689


2009 Mar 07  22:04:23:698  68:40690


2009 Mar 07  22:04:23:829  93:36235


2009 Mar 07  22:04:23:829  93:36236


2009 Mar 07  22:04:23:945  91:89062


2009 Mar 07  22:04:23:945  91:89063


2009 Mar 07  22:04:24:018  91:89064


2009 Mar 07  22:04:24:018  91:89065


2009 Mar 07  22:04:24:018  91:89066
Old 03-19-2009
Franklin52 Franklin52 is online now Forum Staff  
Модератор
  
 

Регистрация: Февраль 2007
Сообщения: 4307
Если AWK разрешается:

Код:
awk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file
Привет
Old 03-19-2009
Юха Juha is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 36
Благодаря Франклина, не работает для меня то же ..

Код:
# awk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file
awk: syntax error near line 1
awk: bailing out near line 1
Что nawk он выполняет, но только удаляет первого вхождения, что "блок"

Код:
# nawk '/ProcessType:/ && !p {i=-4;p=1} i++ > 0' file
ProcessType:    PROCESS_A (0)
SequenceNumber: 8286

2009 Mar 07  22:04:23:679   0:8286

ProcessType:    PROCESS_B (68)
SequenceNumber: 40689

2009 Mar 07  22:04:23:698  68:40689

DATA that should not be deleted

ProcessType:    PROCESS_B (68)
SequenceNumber: 40690
...
Old 03-19-2009
Franklin52 Franklin52 is online now Forum Staff  
Модератор
  
 

Регистрация: Февраль 2007
Сообщения: 4307
Я понял вопрос, это должно исключить первые 4 строки во всех блоках:

Код:
nawk '/ProcessType:/{i=-4} i++ > 0' file
Привет
Old 03-19-2009
Юха Juha is offline
Зарегистрированный пользователь
  
 

Регистрация: Sep 2006
Сообщений: 36
Большой! Она работает прекрасно! спасибо
Old 03-19-2009
Shahul's Avatar
Shahul Shahul is offline
Зарегистрированный пользователь
  
 

Регистрация: август 2008
Место проведения: Индия
Сообщений: 175
Привет,

Надеюсь, что это также может помочь вам ..

Код:
sed -n  '/ProcessType:/ {n;n;n;n;n;p}' out1.lst
Спасибо
Ша
Closed Thread

Закладки

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

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

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

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




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