不知道大家有沒有過這樣的經驗,一位平時對產品頗多抱怨,在和他們的對談或是信件往來中,總能感受出諸多不滿。
然後,某一天....這個客人給了你一頓好料的。
主管轉寄給你一封需要下載很久的信件,一打開來裡頭是那位客人的主管,收件者是你身邊需要敲門才能見到的業務主管以及部門主管,內容就是典型的抱怨品質、批評設計與威脅要轉移訂單,再加上一個3MB的zip檔。
這個3MB的zip檔,打開一看驚呆了,裡頭有6個資料夾,總共18xx個txt檔,還原後合計143MB的txt要分析。
收到信的五分鐘後,立馬看到了會議邀請通知,看來不先帶著點什麼初步的結果去開會,這個周末可能不會太好過, 甚至準時下班都可能有問題。
OK,正式上工了!
Log Preview:
資料夾的結構如下
\CECC_Errors
\12m362.log
\15m197.log
....
\Addtional_Logs
\11m179.log
\11m180.log
....
\IERR
\12m418.log
\16m297.log
....
\UECC_Errors
\12m362.log
\15m197.log
....
\UMCE
\11m197.log
\20m309.log
....
\Voltage
\15m182.log
\16m200.log
....
看來客人已經根據問題的類別做出大概的分類,檔名看來可以先假設成主機名稱來和客人溝通,但是不清楚這些檔名有沒有重複,以及裡頭還有個語焉不詳的Additional Logs,目前就先整理一下有沒有重複的檔案再往下處理。
工作環境說明
我是用Windows NB安裝WSL 2.0,因此以下的操作如果沒有特別說明的話,都是WSL裡的linux。整理log的過程中使用的語法會儘量以簡單易懂的為主,再用excel的文字匯入功能做輔助,以求方便。
在log資料夾中先用ls -l * 列出所有資料夾中的檔案
root@mynb:/mnt/d/Difficult_Company# ls -l *> lsl.txt
由於ls -l 的結果會對資料夾內容做區塊式的陳列,因此以grep輔助把與檔案無關的結果排除
root@mynb:/mnt/d/Difficult_Company# cat lsl.txt | grep '\-r' > file_list.txt
將文件內容貼入excel,並以文字匯入精靈做分割資料欄位
直接從notepad++把剛剛的txt檔內容複製貼上的結果便像下圖,所有的資料都以行為單位被放在一個儲存格中
因此注意到內容貼上後,在貼上資料的角落處會出現一個貼上選項的圖示,裡頭便是文字匯入精靈的功能
設定文字匯入精靈
首先要設定的東西是這些資料間要怎麼分隔,由於我們的資料間雖然有空白相隔,但是不確定資料間的空白是不是固定寬度,因此使用分隔符號
再來指定分隔符號為"空格",預設會開啟連續相同分隔符號的單一化,方便處理不定長度的分隔符號
最後便是檢視資料分割的正確性,順便確認分割後需要的欄位以及各自要匯入的資料格式
使用excel的重複檢查功能,標示出顯眼的記號來判斷有沒有相同的名稱
首先在功能表上找出"條件式格式設定"
選擇顯目提示儲存格規則-> 重複的值
最後設定重複資料呈現為什麼樣的格式
最後花點時間,用滑鼠加眼睛快速掃描一下有沒有明顯的重複資料
看來這個客人的確提供了18xx個主機的log,完全沒有重複,那之後就是分析log的工作了。
文章已經太長了,結束前提供一下如果發現重複值的結果大概會長什麼樣子給大家參考一下吧。