我在看起来像使用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