亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

lua日志文件處理代碼

2024-07-21 23:05:00
字體:
來源:轉載
供稿:網友

目前我找到的文件夾的搜索工具,最多可以完成把搜索到的單行的內容,進行輸出出來,或者進行一些簡單的處理,但是不夠靈活。

因此就用lua自己寫了個,可以完成自己定義搜索處理函數,進行一些數據的處理,省去了將搜索結果放到excel中再處理的過程。

-- search_log.luatbResult = {};tbCmdResult = {};local szTmpFolderPath = os.getenv("temp");if not szTmpFolderPath then os.execute("md c://temp") szTmpFolderPath = "c://temp";endlocal tbSpecialWorld ={ ["("] = "%(", [")"] = "%)", ["."] = "%.", ["%"] = "%%", ["+"] = "%+", ["-"] = "%-", ["*"] = "%*", ["?"] = "%?", ["["] = "%[", ["]"] = "%]", ["^"] = "%^", ["$"] = "%$",};function FormatCmd(szCmd) return string.gsub(szCmd, ".", function(s) return tbSpecialWorld[s] or s; end)endfunction FormatPath(szPath) string.gsub(szPath, "[///]$", ""); return string.gsub(szPath, "/", "//");endfunction CheckFile(szFilePath) local file = io.open(szFilePath, "rb"); if not file then   return; end file:close(); return true;endfunction OpenFile(szFilePath) if not CheckFile(szFilePath) then   return; end local tbFile = {}; for line in io.lines(szFilePath) do   table.insert(tbFile, line); end return tbFile;endfunction SearchFile(szFilePath, szCmd, fnCmd2Line, fnFileName) local tbFile = OpenFile(szFilePath); if not tbFile then   return; end tbResult[szFilePath] = tbResult[szFilePath] or {}; local szCmdResult = ""; for nLine, szLine in ipairs(tbFile) do   if string.match(szLine, szCmd) then     szCmdResult = fnCmd2Line(szLine);     if szCmdResult and szCmdResult ~= "" then       table.insert(tbCmdResult, szCmdResult);     end     table.insert(tbResult[szFilePath], nLine .. ":" .. szLine);   end end return 1;endfunction Cmd2Line(szLine) return;endfunction CheckName(szFileName) return true;endfunction SearchDir(szFolderPath, szCmd, fnCmd2Line, fnCheckName, nIdx) if not szCmd or szCmd == "" then   return; end local fnCmd2Line = fnCmd2Line or Cmd2Line; local fnCheckName = fnCheckName or CheckName; local nIdx = nIdx or 0; local szTmpFileName = szTmpFolderPath .. "//SearchDirTemp" .. nIdx .. ".tmp"; os.execute("dir /b ".. szFolderPath .." >" .. szTmpFileName); local tbFile = OpenFile(szTmpFileName); if not tbFile or #tbFile == 0 then   return; end local szPath = ""; for _, szFileName in ipairs(tbFile) do   szPath = szFolderPath .. "//" .. szFileName;   if not CheckFile(szPath) then     SearchDir(szPath, szCmd, fnCmd2Line, nIdx + 1);    else      if CheckName(szFileName) then        SearchFile(szPath, szCmd, fnCmd2Line);      end    end  endendfunction Write2File(szInfo, szFilePath)  local file = io.open(szFilePath, "w");  if not file then    print(szInfo);    print("Write2File ERR ?? not file " .. szFilePath);    return;  end  file:write(szInfo);  file:close();endfunction DoSearchDir(szFolderPath, szCmd, tbParam)  if not szFolderPath or szFolderPath == "" or not szCmd or szCmd == "" then    return;  end   tbParam = tbParam or {};  szFolderPath = FormatPath(szFolderPath);  if tbParam.bIsMatch then    szCmd = FormatCmd(szCmd);  end  local nTime = os.time();  SearchDir(szFolderPath, szCmd, tbParam.fnCmd2Line or Cmd2Line, tbParam.fnCheckName or CheckName, 0);  nTime = os.time() - nTime;  print("搜索用時:" .. nTime);  local szResultPath = tbParam.szResultPath or (szTmpFolderPath .. "//result.tab.tmp");  local szResult = "";  for szFilePath, tbInfo in pairs(tbResult) do    szResult = szResult .. szFilePath .. "/n";    for _, szLine in pairs(tbInfo) do      szResult = szResult .. szLine .. "/n";    end  end  Write2File(szResult, szResultPath);  local szCmdResult = "";  for _, szLine in pairs(tbCmdResult) do    szCmdResult = szCmdResult .. szLine .. "/n";  end  Write2File(szCmdResult, tbParam.szCmdResultPath or (szTmpFolderPath .. "//cmd_result.tab.tmp"));end--tbParam =--{--  bIsMatch = false;  -- 是否使用正則方式搜索--  fnCmd2Line = function () end; -- 自定義搜索行內容處理函數--  fnCheckName = function () end; -- 文件名限定函數--  szResultPath = "e://result.tab"; -- 文件搜索內容輸出路徑--  szCmdResultPath = "e://cmd_result.tab"; -- 自定義處理函數返回內容儲存路徑--}

使用代碼可以如下(貌似支持網絡路徑的):

dofile("e://search_log.lua");tbTmpInfo = {};function CheckInfo(szLine) local szPlayerName, nPlayerId, nCount = string.match(szLine, "^.*szType = final/t[^/t]+/t%d+/t([^/t]+)/t(%d+)/t(%d+).*$"); nPlayerId = tonumber(nPlayerId); nCount = tonumber(nCount); if nCount > tbTmpInfo[nPlayerId] then   tbTmpInfo[nPlayerId] = nCount;    return "" .. nPlayerId .. "/t" .. nCount;  end  return;endtbParam ={  bIsMatch = false;  fnCmd2Line = CheckInfo;  fnCheckName = function () return true; end;  szResultPath = "e://result.tab";  szCmdResultPath = "e://cmd_result.tab";}DoSearchDir("d://logs", "szType = final", tbParam);for _, szInfo in pairs(tbTmpInfo) do  print(szInfo);end

唯一不滿意的地方貌似是搜索速度有點慢,以后有空再調整吧,現在這個暫時夠用了,至少比原來方便多了~~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产精品国自产观看浪潮| 国产欧美精品va在线观看| 亚洲精品一区二区在线| 日韩欧美精品免费在线| 国产精自产拍久久久久久蜜| 懂色aⅴ精品一区二区三区蜜月| 97久久国产精品| 日韩视频免费中文字幕| 国产免费一区二区三区在线观看| 国外成人性视频| 亚洲视频欧美视频| 亚洲视频999| 伊人久久五月天| 久久综合久久88| 精品国产成人在线| 日韩高清av在线| 色综合色综合网色综合| 中文字幕一区二区三区电影| 亚洲精选一区二区| 国产69精品99久久久久久宅男| 亚洲欧美一区二区三区四区| 日本91av在线播放| 久久久精品国产一区二区| 久久精品电影网| 久久av.com| 国产精品夜间视频香蕉| 成人欧美在线观看| 久久久之久亚州精品露出| 韩国国内大量揄拍精品视频| 在线视频国产日韩| 成人精品aaaa网站| 亚洲欧美在线播放| 狠狠躁夜夜躁人人爽天天天天97| 国产精品视频久久| 国产精品视频地址| 中文字幕日韩综合av| 91精品国产自产在线观看永久| 欧美激情手机在线视频| 国产亚洲aⅴaaaaaa毛片| 欧美日韩第一页| 亚洲日本成人女熟在线观看| 亚洲国语精品自产拍在线观看| 日韩欧美在线播放| 亚洲天天在线日亚洲洲精| 久久香蕉国产线看观看网| 伊人伊成久久人综合网站| 亚洲乱码国产乱码精品精| 国语自产偷拍精品视频偷| 亚洲网站在线看| 疯狂欧美牲乱大交777| 97在线免费观看| 国模精品一区二区三区色天香| 国产精品女人久久久久久| 另类图片亚洲另类| 久久精品国产欧美激情| 国产精品美女主播在线观看纯欲| 欧美成人午夜影院| 高清日韩电视剧大全免费播放在线观看| 欧美极品少妇xxxxⅹ免费视频| 亚洲色图偷窥自拍| 一级做a爰片久久毛片美女图片| 欧美日韩国产精品| 国产精品福利网站| 亚洲欧美日韩爽爽影院| 国产成人精彩在线视频九色| 亚洲精品久久久久中文字幕二区| 亚洲精品视频久久| 中文字幕日韩在线观看| 欧美一级高清免费| 国产+成+人+亚洲欧洲| 91精品久久久久久久久久| 国产精品日日摸夜夜添夜夜av| 亚洲精品电影在线| 精品视频久久久久久| 91色中文字幕| 最近2019年好看中文字幕视频| 亚洲区在线播放| 尤物九九久久国产精品的分类| 国产精品成av人在线视午夜片| 一区二区三区四区精品| 91经典在线视频| 国产有码在线一区二区视频| 国产精品成久久久久三级| 日韩国产中文字幕| 久久久电影免费观看完整版| 尤物九九久久国产精品的特点| 国产精品成人v| 91在线观看免费| 日韩中文字幕精品视频| 国产综合视频在线观看| 欧美精品久久久久久久免费观看| 欧美精品一区二区三区国产精品| 亚洲精品98久久久久久中文字幕| 国产视频精品va久久久久久| 国产亚洲欧洲高清一区| 久久精品2019中文字幕| 国内精品一区二区三区四区| 不卡av在线网站| 精品人伦一区二区三区蜜桃免费| 国产精品爱啪在线线免费观看| 成人黄色片网站| 日韩国产中文字幕| 伊人伊成久久人综合网小说| 成人免费福利在线| 91免费看国产| 亚洲欧美国产精品久久久久久久| 88国产精品欧美一区二区三区| 欧美日韩国产二区| 欧美精品性视频| xxxx欧美18另类的高清| 亚洲香蕉av在线一区二区三区| 久久久精品视频在线观看| 国产精品99久久久久久久久| 日韩电影中文 亚洲精品乱码| 亚洲成人久久久久| 国产精品久久久av| 国产精品jizz在线观看麻豆| 亚洲欧洲国产一区| 亚洲女人被黑人巨大进入| 日日骚久久av| 久久久免费观看视频| 日韩精品视频免费专区在线播放| 欧美国产在线电影| 国产区精品在线观看| 亚洲一区二区国产| 亚洲精品suv精品一区二区| 精品一区二区三区电影| 亚洲国产高清高潮精品美女| 国产精品国产三级国产aⅴ浪潮| 日韩在线视频观看正片免费网站| 色噜噜国产精品视频一区二区| 亚洲国产日韩精品在线| 日韩美女激情视频| 久久视频在线免费观看| 久久久久久亚洲精品| 国产精品小说在线| 插插插亚洲综合网| 性夜试看影院91社区| 正在播放国产一区| 久久久精品电影| 91国语精品自产拍在线观看性色| 久久天天躁狠狠躁夜夜av| 欧美视频中文在线看| 国产美女搞久久| 久久成人av网站| 亚洲国产小视频在线观看| 精品久久久久久久久久久久久| 精品调教chinesegay| 亚洲国产精品久久久久| 亚洲精品一区二区久| 国模gogo一区二区大胆私拍| 中文字幕久久久| 草民午夜欧美限制a级福利片| 国产69久久精品成人| 色一情一乱一区二区| 欧美激情视频在线免费观看 欧美视频免费一| 精品少妇v888av| 亚洲精品日韩在线| 国色天香2019中文字幕在线观看| 国产精品久久久久久久一区探花| 成人黄色在线观看| 欧美午夜女人视频在线| 欧美性猛交丰臀xxxxx网站| 国产日韩中文字幕在线|