У меня был каталог "/pcap_test", который содержит несколько файлов журналов. Каждый файл имеет шаблон, например:
Pkt: 1 (358 байт), LIFE: 1, приложение: itunes (INTO), состояние: TERMINATED, стек: /ETH/IP/UDP/itunes, ошибка: нет
Pkt: 2 (69 байт), LIFE: 2, приложение: zynga (INTO), состояние: INSPECTING, стек: /ETH/IP/UDP, ошибка: нет
Pkt: 3 (149 байт), LIFE: 2, приложение: pizzeria (INTO), состояние: TERMINATED, стек: /ETH/IP/UDP/pizzeria, ошибка: нет
В этом случае я хочу, чтобы вывод был второй строкой, потому что содержимое «Приложения» отсутствует в «Стек:»
Я написал небольшой скрипт на Python для перебора каталога, открытия каждого файла и вывода вывода:
import os
list = os.listdir("/home/test/Downloads/pcap_test")
print list
for infile in list:
infile = os.path.join("/home/test/Downloads/pcap_test" , infile)
if os.path.isfile(infile):
str = file(infile, 'r').read()
print str
Я каким-то образом получил вывод с помощью grep, но не смог использовать его в скрипте python. Это что-то вроде:
grep -vP 'App: ([^, ]*) \(INTO\).*Stack: .*\1.*$' xyz.pcap.log | grep -P 'App: ([^, ]*) \(INTO\)'
Поскольку у меня уже есть файл с именем «str», я хочу использовать его, а не отдельные файлы журналов, для получения вывода.
Любая помощь в этом отношении будет высоко оценена.
r"this is a raw string with the r in front"
). Я обновил свой ответ. 19.02.2013