我有一组大文本文件,其中包含大量信息,格式不一致。我对大多数信息并不是那么关心,但我正在尝试提取文件中包含的ID。我已经起草了一个相当简单的脚本(ID是3位数 - 7位数)。
puts("What's the name of the file you'd like to check? (don't include .txt)")
file_to_check = gets.chomp
file_to_write = file_to_check + "IDs" + ".txt"
file_to_check = file_to_check + ".txt"
output_text = ""
count_of_lines = 0
File.open(file_to_check, "r").each_line do |line|
count_of_lines += 1
if /.*\d{3}-\d{7}.*/ =~ line
temp_case = line.match(/\d{3}-\d{7}/).to_s
temp_case = temp_case + "\n"
output_text = output_text + temp_case
else
# puts("this failed")
end
end
File.open(file_to_write, "w") do |file|
file.puts(output_text)
file.puts(count_of_lines)
end
其中一个文件包含VIM显示为^ Z的字符,它们似乎在实际到达文件末尾之前杀死了脚本。
有什么办法可以让Ruby忽略这些字符并继续浏览文件吗?