![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Взять меньшее и большее значение | Raynon | Shell программирование и сценарии | 3 | 10-11-2007 07:23 AM |
| захват в строке, используя AWK | cdfd123 | Shell программирование и сценарии | 1 | 10-10-2007 09:21 AM |
| поиск и захват данных из огромного файла | ting123 | UNIX для чайников Вопросы И Ответы | 1 | 06-06-2006 10:41 PM |
| Как связывать две строки или несколько строк в одну строку в B-оболочки? | FONTANA | Shell программирование и сценарии | 2 | 08-26-2005 12:58 PM |
| Как Получите последний файл | n9ninchd | UNIX для чайников Вопросы И Ответы | 1 | 05-10-2001 05:31 PM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Как захватить данных между 2 строками?
Привет Все,
У меня есть текстовый файл ниже. Как мне захватить все данные между "05T00NPQSMR1" и "****" используя AWK? Просьба отметить, что текст строк не может быть фиксированной и содержание текста является динамичной. Просьба помочь. Спасибо Ниже мой код, где $ LOT_SUFFIX мой корпуса переменной. AWK'/'"$ LOT_SUFFIX "'/,/ бла / '$ nfile_selected Данные: бла ххх YYY ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ Ожидаемый результат: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла ************************************ |
|
||||
|
Цитата:
Результат: ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 |
|
||||
|
Альтернативные на Python: Вход: бла ххх YYY ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ xxxasdfljsdlfx YYY; slkfd; S zzzsdklfjsd blasdflksdjh blajaspofkspodf Код:
number = []
all = open("test.txt").readlines()
for num,line in enumerate(all):
line = line.strip()
if "*" * 58 in line:
number.append(num)
for i in range(len(number)):
try:
print ''.join(all[ number[i]:number[i+1] ] )
except:
print ''.join(all[number[i]:])
Результат: ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ xxxasdfljsdlfx YYY; slkfd; S zzzsdklfjsd blasdflksdjh blajaspofkspodf Последний раз редактировалось ghostdog74; на 10-05-2006 04:34 AM.. |
|
||||
|
Код:
awk -v pat1="05T00NPQSMR1" -v pat2="^[*]{3,}" '$0~pat1,$0~pat2' awtest
Если вам нужна только данные по "** tasC" Код:
awk -v pat1="05T00NPQSMR1" -v pat2="^** tasC" '$0~pat1,$0~pat2' awtest |
|
||||
|
Цитата:
Код:
sed -n '/05T00NPQSMR1/,/*\{58\}/p' input
где 58 длина выше звездочкой линия |
|
||||
|
Привет Anbu,
Ниже код: AWK-V pat1 \u003d "05T00NPQSMR1"-V pat2 \u003d"^[*]{ 3,) " '$ 0 ~ pat1, $ 0 ~ pat2' awtest И Vish, Ниже код: SED -N '/ 05T00NPQSMR1 /, / * \ (58 \) / P' входного Оба мероприятия являются: ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла ************************************************** ******** ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ Но то, что мне нужно это: ** 05T00NPQSMR1 P98P2234 вт 10 03 09:57:24 2006 ** Dibid \u003d 1166 testerid \u003d 6 ** Выборки \u003d 100 0 ** TASM \u003d MFMM хх хх хх ** TasC \u003d MFMC хх хх хх ************************************ XXXX YYY ZZZ бла бла Просьба помочь. Спасибо Последний раз редактировалось Raynon; на 10-05-2006 04:21 AM.. |
![]() |
| Закладки |
| Теги |
| Regex, регулярные выражения |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|