gpt4 book ai didi

ruby - 帮助 ruby​​ 脚本,(如果行包含,忽略)

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:46 26 4
gpt4 key购买 nike

首先,让我道歉,因为我对 ruby 一无所知。我可以通读代码并理解发生了什么,但从未编写过任何代码。

我有一个脚本,用于解析很久以前从某人那里获得的一些日志文件。

# format the csv data into an sql insert query
def FormatToSQL(file_name)
$logger.info(caller) { "creating SQL insert q's" }
formatted_data = []
data_lines = []
open("#{LOCAL_DIR}/#{file_name}") { |f| data_lines = f.readlines }
data_lines.each do |r|
data = []
rdata = r.split(' ')
rdata.each { |e| data.push("'#{e}'") }
data.unshift('DEFAULT')
sql_data = data.join(',')
formatted_data.push(sql_data)
end
return(formatted_data)
end
# -------------------------------------------------------------------
# -------------------------------------------------------------------
# M A I N

$logger = Logger.new("//var/www/metaquery/calllogger.log", 3, 1024000)
$logger.info(caller) { "start" }
now = Time.now().gmtime() - 3600 ## files are name using UTC
file_name = sprintf("calllog_%s_%02d_%02d_%02d.log", now.year, now.month.to_i, now.day.to_i, now.hour.to_i)
if(doSFTPPull(file_name)) then
ConnectDB()
formatted_sql = FormatToSQL(file_name)
formatted_sql.each { |sql| $local_conn.query("insert into #{DB_TABLE} values(#{sql})") }
else
# we did not download the new file, report to ???
false
end
$logger.info(caller) { "normal end" }
# -------------------------------------------------------------------

日志有几千行记录,像这样

2xx3xx2xx7 2xx3xx56xx 07/28/11.19:55:45 19:55:46 20:00:00 2 4092 - - N - - TER - A T -

但是,我们启用了一些新的 QoS 统计信息,它添加了这样的行,

VQM: 2xx3xx00xx 08/12/11.13:02:07 - - - - 20ms 0 0

我想添加一个语句来忽略以 VQM 开头的任何行,因为这会导致 MySQL 插入的列计数丢失,最终导致查询失败,从而导致脚本失败。

我将如何实现这一目标?再次抱歉,我是一个完全的 Ruby 菜鸟。我只是一个 php 人,甚至不擅长那个。哈哈

我知道,该地区可能必须在 data_lines.each 做 |r|

代码的位置,可能是带有正则表达式的 if/then。感谢您的帮助!

最佳答案

尝试这样的事情:

data_lines.each do |r|
next if r.match(/^VQM/) #will skip this one if the line starts VQM
#everything else as before
end

关于ruby - 帮助 ruby​​ 脚本,(如果行包含,忽略),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7040668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com