我已登录以下格式,我正在尝试通过以下命令从行中提取2394528 并且它没有撤回任何结果
0140928.log:2014/09/28 06:45:00,911 Info CS Traffic: secureserver ABC: 2394528 / 000
20140928.log:2014/09/28 07:00:00,910 Info CS Traffic: secureserver ABC: 2397206 / 000
命令:
grep ":\s\+(.{7}\d+)\s+/" 20140928.log.
有人可以帮忙吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
使用-o
,-P
参数尝试以下grep命令。
grep -oP ':\s+\K\d{7}(?=\s+\/)' file
或强>
如果数字长度不同,请尝试以下方法。
grep -oP ':\s+\K\d+(?=\s+\/)' file
答案 2 :(得分:0)
使用sed
,您可以按照以下方式执行此操作:
sed 's~^.*: *\([0-9]*\) /.*$~\1~' file
2394528
2397206
此sed
正则表达式匹配从开始到:<space>
的所有内容,然后捕获后面引用变量\1
中接下来的数字,然后匹配到结尾。在替换中,它使用后向引用\1
来输出数字。