我使用grep
或其他Linux殼在該日誌文件中的條目像從日誌文件中,Linux的grep的找到獨特的時間
[NGS|00219|17-10-2012 19:05:43:977|INFO]
在我的日誌文件
,怎麼能找到的唯一時間值(不包括毫秒)工具
我使用grep
或其他Linux殼在該日誌文件中的條目像從日誌文件中,Linux的grep的找到獨特的時間
[NGS|00219|17-10-2012 19:05:43:977|INFO]
在我的日誌文件
,怎麼能找到的唯一時間值(不包括毫秒)工具
這裏的打印獨特的時間的一種方法:
awk '!a[substr($2,0,8)]++ { print substr($2,0,8) }' file.txt
+1比我的單個'awk'解決方案更清潔。 – jordanm
方法很多,當然 - 怎麼樣用cut
,sed
,並uniq
:
cut -d' ' -f2 logfile | sed -e 's/:[^:]*$//' | uniq
(僅取ŧ他的空間之後的東西,從最後一個冒號到底除去一切,然後消除重複)
或者,只是用sed
和uniq
:
sed -e 's/.*\ \(.*\):[^:]*$/\1/' logfile | uniq
也許不是最優雅:
awk '{print $2}' log.txt | cut -c 1-8 | uniq
這是AWK
awk -F'|' '{
split($3, a,//);
sub(/:[[:digit:]]+$/, "", a[2]);
arr[a[2]] = 1;
} END {
for (i in arr)
print i
}' file.log
可以使用sub()
函數刪除毫秒,然後添加值作爲一個關鍵的陣列非常簡單。由於數組鍵是唯一的,這將刪除任何重複項。處理完後,END塊遍歷鍵並打印它們。
答案更新以排除日期。這是通過在時間戳上使用split()來刪除日期部分來完成的。
上次編輯後在我的環境中沒有獲得任何輸出,那麼您的身邊怎麼樣? –
@ sampson-chen我搞砸了編輯,謝謝指出。現在已經修復了。 – jordanm
我自己找到了一個很好的答案
egrep -o '[[:digit:]]+[:][[:digit:]]+[:][[:digit:]]+' NGS.log | uniq
總有不止一種方法可以做到! – squiguy
到egrep命令命令類似,您可以使用grep如下:
grep的 - o -E'[[:digit:]] + [:] [[:digit:]] + [:] [[:digit:]] +'NGS.log | uniq
?你想要所有的時間戳記(不包括毫秒)是唯一的日誌嗎? –
@ sampson-chen是排除毫秒信息的唯一時間.. –
「時間」是否包含日期? – jordanm