我在看起來像使用grep或AWK
Oct 07, 2014 7:39:10 AM x.y.z
SEVERE: adding the post (STORY) abcd = 495274900579805_10204277254604731 : a = 0 b = 0 c = 0
我想獲得從第一行的日期和時間並且a = 0 B = 0 C =從第二0日誌文件行行,我怎麼能實現這個使用grep和awk。好心幫
我在看起來像使用grep或AWK
Oct 07, 2014 7:39:10 AM x.y.z
SEVERE: adding the post (STORY) abcd = 495274900579805_10204277254604731 : a = 0 b = 0 c = 0
我想獲得從第一行的日期和時間並且a = 0 B = 0 C =從第二0日誌文件行行,我怎麼能實現這個使用grep和awk。好心幫
這裏是一個awk
版本(你問AWK)
awk '/AM|PM/ && NF--; /a =/ {print "a = "$(NF-6),"b = "$(NF-3),"c = "$NF}' file
Oct 07, 2014 7:39:10 AM
a = 0 b = 0 c = 0
另一個版本:
awk '/AM|PM/ && NF--; {n=split($0,a,"abcd");if (n==2) print "abcd"a[2]}' file
Oct 07, 2014 7:39:10 AM
abcd = 495274900579805_10204277254604731 : a = 0 b = 0 c = 0
只是真棒@Jotne像一塊蛋糕一樣工作。希望我開始在awk上學習我的基礎知識 – 2014-10-28 11:47:25
你可以試試下面的grep命令,
$ grep -oP '.*?(?=\s[^.\s]+\.[^.\s]+\.\S+)|:\s+\K[^:]*$' file
Oct 07, 2014 7:39:10 AM
a = 0 b = 0 c = 0
更新:
$ grep -oP '.*?(?=\s[^.\s]+\.[^.\s]+\.\S+)|\) *\K.*' file
Oct 07, 2014 7:39:10 AM
abcd = 495274900579805_10204277254604731 : a = 0 b = 0 c = 0
@Avinash您好 它的工作精美有在具有將被打印的數據的小的變化,我可以得到打印第二行像 ABCD = 495274900579805_10204277254604731:A = 0 B = 0 C = 0 和最後我需要將這些行推送到csv,其中日期應該在第一列中,abcd在第二列中,a在第三列中,b,c在csv中隨後的列之後。請問你能幫我嗎 – 2014-10-28 05:20:32
你可以分享你已經嘗試過?如果你確實awk,你通常不需要grep。 – Anton 2014-10-28 05:00:53
嗨@Anton 我已使用 貓2014-10-07_log * | grep -B 1「495274900579805_1020427725460473」以獲得上述兩條線,我需要提取我從前一篇文章中提到的項目。 – 2014-10-28 05:15:32