最近忙成了狗,五六個專案堆在一起,頭疼的是測試還失驚無神的給我丟來乙個幾十甚至上百m的日誌檔案,動不動就幾十上百萬行,就算是搜尋也看得頭昏眼花的,因此自己花了點時間寫了一段小指令碼去過濾日誌,當然這樣的東西網上應該大把,但是還是想自己搞下,權當學習!
#!/usr/bin/python
# -*- encoding: utf-8 -*-
# version 1.0
import re
import time
'''用於篩選日誌檔案,適用於python2.x版本
使用時將日誌檔案放於search.py工具同一目錄
篩選完畢後會出現「舊檔名+當前時間」格式命名的新日誌檔案
'''def getparameters():
file_name = ""
key_work = ""
while (true):
file_name = raw_input("請輸入檔名:")
key_work = raw_input("請輸入過濾關鍵字:")
if len(file_name) == 0 or len(key_work) == 0:
flag = raw_input("您輸入的檔名或關鍵子為空,輸出c重試,q退出程式:")
if flag == "q":
return
elif flag == "c":
continue
else:
break
new_file = file_name + "-" + formattime(time.localtime())
f = open("./" + file_name, "rb")
lines = f.readlines()
if len(lines) == 0:
print("*****===日誌檔案為空*****===")
f.close()
return
nf = open("./" + new_file, "wb");
count = 0
for line in lines:
rs = re.search(key_work, line)
if rs:
print("[命中]--->%s" % line)
nf.write(line)
count = count + 1
f.close()
nf.close()
print("共找到%d條資訊" % count)
def formattime(timevalue):
'''format the time numbers
'''return time.strftime("%y%m%d%h%m%s", timevalue)
if __name__ == '__main__':
getparameters()
說明:這段指令碼我是直接在終端上./***x.py的方式執行的,我終端由於編譯android原始碼需要裝的是python2.7.6,在python3上執行估計會有問題。
好了,下面是我測試了下的賽選結果:
當然,這只針對單個檔案而已!
python篩選一段資料 按多個關鍵字篩選資料
我認為您可以為每個關鍵字建立單獨的掩碼,然後通過 將它們與鏈結結合起來 對於每行至少乙個true使用 df rest pd.dataframe cols 0,1,2 print m1 0 1 2 0 true true true 1 true true false 2 true false true...
搜尋關鍵字 篩選行業 篩選地區
1.template 2.script data sourcelist 是從後台獲取資料,所以 created methods this.selectinput object.keys selectinput foreach v let arr object.assign selectinput 把...
根據關鍵字檢視日誌
老是忘記怎麼檢視某個關鍵字的指令,看到有個老哥寫得不錯,我把它貼上到這裡備份啦 說明 這個只是供自己以後查詢使用,如有問題請指出。僅供參考 檢視匹配內容的前後幾行 reg 代表要搜尋的內容 destfile 代表要搜尋的檔案 grep 5 reg destfile 列印匹配行的前後5行 grep c...