У меня есть текстовый файл, который я использовал для захвата пакетов данных по моей сети. Мне интересно, сможет ли кто-нибудь сказать мне, как я могу использовать регулярные выражения для поиска всех экземпляров 'IP len ='
в файле и, возможно, извлечь их в другой файл?
1
jbod
21 Апр 2011 в 20:48
2 ответа
Лучший ответ
Этот небольшой скрипт сделает свое дело (исправляйте, как хотите):
#!/usr/bin/ruby -w
File.open('infile.txt', 'r') do |infile|
File.open('outfile.txt', 'w') do |outfile|
while (line = infile.gets) do
if line =~ /IP\s+len\s+=/ then
outfile.puts line
end
end
end
end
2
odrm
21 Апр 2011 в 21:04
Это должно помочь:
File.open("log.txt", 'r') do |f|
File.open("ip_len_out.txt", 'w') do |out|
f.lines.each do |line|
out.puts $1 if line.match(/IP\s+len\s*=(\d+)/)
end
end
end
ip_len_out.txt
теперь содержит все длины IP, разделенные новой строкой.
0
Mike Lewis
21 Апр 2011 в 21:25
Похожие вопросы
Новые вопросы
ruby
Ruby - это многоплатформенный динамический объектно-ориентированный интерпретируемый язык с открытым исходным кодом. Тег [ruby] предназначен для вопросов, связанных с языком Ruby, включая его синтаксис и его библиотеки. Вопросы Ruby on Rails должны быть помечены [ruby-on-rails].
line.match(...)
может быть более похожим на Ruby способом сделать это.=~
унаследован от Perl.