2014-03-07 42 views
0

我曾經在一個足夠簡單的問題上得到了一些幫助;但是由於我是Unix新手,我遇到了問題。我擁有的是由時間戳和用戶標識組成的日誌文件(逗號分隔符)。Unix循環和條件(Modulo運算符,如果在字母表中測試)

2014 03 06 11:21:30:641,test_ess20 and sleep(4) 
2014 03 06 11:21:30:701,test_ess20 
2014 03 06 11:21:30:767,test_ess20 or (sleep(4)+1) limit 1 -- 
2014 03 06 11:21:30:864,test_ess20 
2014 03 06 11:21:31:076,S7989676 
2014 03 06 11:21:30:915,test_ess20 
2014 03 06 11:21:30:976,test_ess20'; waitfor delay '0:0:4' -- 
2014 03 06 11:21:31:076,test_ess20"; waitfor delay '0:0:4' -- 

我想要做的是測試每個用戶ID,以確保它是有效的。這意味着它以字母表中的單個字母開頭,後面跟着一串數字(長度可變)。此外,這個變量的數字和數字'8'必須產生一個4的模。如果這是真的,沒有任何反應,即它是一個有效的用戶。如果不是,我想在日誌文件的行尾添加## ERROR。

我希望你們可以遵循和欣賞援助

PS:在樣本數據上面只有X1有效用戶。

+0

你使用什麼編程語言? 'bash'?你有任何語言的編程經驗嗎? – dg99

+0

我正在使用bash,但我習慣於C#VBA – Chris

回答

0

我不知道你想怎麼做。如果你想bash腳本,蟒蛇,珍珠,awk。如果我是你,我會使用python/perl和正則表達式。

+0

是的,在bash中這樣做,但剛剛偶然發現正則表達式。將嘗試去這樣...下面是我到$ – Chris

+0

的地方(cat myTemp.txt | awk -F',''{print $ 2}');做char1 ='echo $ i | cut -c1'; str ='echo $ i | cut -c2-'; echo $ str「」$ char1; DONE – Chris