shell脚本提取日志中的数字

C语言答疑课堂 2019-06-21 11:10:59
各位大神,我有一个日志文件,里面的记录如下:

19
at time in 20190605200000
29
at time in 20190605200001
33
at time in 20190605200002
38
at time in 20190605200003
49
at time in 20190605200004
41
at time in 20190605200005
22
at time in 20190605200006
11
at time in 20190605200007
19
at time in 20190605200008
18
at time in 20190605200009
23
at time in 20190605200010
31
at time in 20190605200011
18
at time in 20190605200012
。。。。。。



我想在linux上实现一个脚本,这个脚本的功能如下:提取这个日志中的数字,比如提取出19、29、33、38、49等,以此类推,“at time in ”这一行统统不要!
请问能提供源码吗?谢谢各位大神了!
...全文
1136 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mouse_zhu 2019-06-21
  • 打赏
  • 举报
回复

#!/bin/bash

cat log | while read line
do
case "$line" in
[1-9][0-9]*)
echo $line;;
esac
done
zhouchao6 2019-06-21
  • 打赏
  • 举报
回复
也可以用sed sed -n '1~2p' a.log -n只输出匹配到的行; 1~2 (开始行号~步长)从第一行开始,没隔一行输出 或者 sed -n '/^[0-9]/p' a.log ^[0-9] 以数字0-9开头的行 即打印以数字开头的行

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧