在可能包含不同形式信息的日志文件中,我只需要grep那些包含子串“ABC”的行,然后在所选行中提取(它总是存在)最后的Kb数(模式是“ :%n Kb“,其中%n是0和以上的数字)。最后,我需要将所有值相加以获得应用程序使用的内存量。
2016-01-14T16:15:01.695Z [INFO] application - ABC 5f18dda7-a30a-44f5-82dd-69d4b5469245: 118 Kb
2016-01-14T16:15:04.535Z [INFO] application - 5f18dda7-a30a-44f5-82dd-69d4b5469245
答案 0 :(得分:1)
grep
不是动词,但awk
是!
awk '/ABC/ {s+= $(NF-1)} END {print s "Kb"}'
应该工作(未经测试)
答案 1 :(得分:1)
您可以使用以下链:
$('#numRepeat').on('change keyup input', function () {
var el = $(".repeat-me").get(0);
var numRepeat = $("#numRepeat").val();
for(var i = 1;i < numRepeat;i++){
var newEl = $(el).after(el.cloneNode(true));
}
}).change();
答案 2 :(得分:0)
我只需要grep那些包含子串“ABC”的行,然后在所选行中提取(它总是存在)最后的Kb数
这看起来像是awk的工作。这个数字总是第二列,awk可以轻松提取:
awk '/ABC/ { print $(NF-1) }' filename_here
此处NF-1
是倒数第二列的索引,$
获取该列中的值。
但是你要总结一下,而不仅仅是提取。这是一项简单的任务,它展示了awk
的更高级用法:
awk '
BEGIN { sum = 0; }
/ABC/ { sum += $(NF-1); }
END { print sum; }
' filename_here
从技术上讲,你可以省略整个BEGIN行,但我认为预先在程序中使用的变量是预先设定的好方式。