[英]python script : convert a bash grep and sort line to insert it in my python one
這是我在 bash 上的內容,並且需要在 python 上進行轉換(我公司強制沒有選擇),但學習新事物很酷:
輸入測試文件的內容由看起來像的行組成
2022-08-11 13:53:15 ; INFO ; file=toto ; Upload size = 13 KB ; result = ....
2022-08-11 13:54:55 ; other info ; rate = 5.3 ;
2022-08-11 13:57:02 | not to be kept line
2022-08-11 13:59:15 ; INFO ; file=titi ; Upload size = 3 KB ; result =...
依此類推,但真實文件將包含其他日志行格式(出於安全原因,我無法在此處復制真實行)所以我使用測試文件
這是給出參加的 output 的確切命令
grep -ihE "size|rate|type_[DI][TA][FT]|source|dest" ../data/*.{log,debug} | sort -t " " -k1,6 -k2 > filtre.txt
所以首先我想在不創建輸出文件的情況下嘗試它
這就是我想用 python 做的事情(我僅限於 2.7 並且不能選擇其他任何東西,不要詢問或提及它)
import os
import re
import string
import sys
datalogpath = sys.argv[1] # get the path of log files to extract datas
searchpattern = re.compile("size|rate|type_D|type_I|source|dest") # regexp to filter from logs directory
# step 1- equ grep all from
for filename in os.listdir(datalogpath):
with open(os.path.join(datalogpath, filename)) as in_file:
for line in in_file:
found = searchpattern.search(line)
if found :
print(found.group(0))
目前似乎從測試文件中出現的只是
size
size
size
size
size
而不是包含大小或任何其他單詞的每一整行,我正在尋找 grep 命令回復所有 23 行(每行的所有內容)
喜歡
2022-08-11 13:53:15 ; INFO ; file=toto ; Upload size = 13 KB ; result = ....
2022-08-11 13:54:55 ; other info ; rate = 5.3 ;
2022-08-11 13:59:15 ; INFO ; file=titi ; Upload size = 3 KB ; result =...
所以例如線
2022-08-11 13:57:02 | not to be kept line
在 output 上不顯示
沒有任何官方文檔章節適合這個用例,
請幫我重新定義 python 格式的正確正則表達式和/或文件讀取方法,如果這個是錯誤的
改變
print(found.group(0))
至
print(line)
您希望在匹配時顯示整行,而不僅僅是重新匹配的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.