Linux ——正则表达式过滤(以北京监测网站为例)

Linux ——正则表达式过滤(以北京监测网站为例)

一、实验内容

从因特网上搜索Web页,用wget获取网页,处理网页html文本数据,从中提取出当前时间点北京各监测站的PM2.5浓度,输出如下CSV格式数据:
2020-03-09 13:00:00,海淀区万柳,73
2020-03-09 13:00:00,昌平镇,67
2020-03-09 13:00:00,奥体中心,66
2020-03-09 13:00:00,海淀区万柳,73
2020-03-09 13:00:00,昌平镇,73
2020-03-09 13:00:00,奥体中心,75

二、实验步骤

1、通过“wget”命令,获取网页内容。

在这里插入图片描述
查看所获得的beijing.html文件的内容,如下所示:
在这里插入图片描述

2、对得到的html文件进行编辑。

由于网站的内容都是用标签作为前后缀,所以可以使用sed命令将标签<>替换为空格。
在这里插入图片描述
编辑之后得到的文件信息如下所示,可见这一步已提取出所有以汉字和数字来描述的关键信息。
在这里插入图片描述

3、由于每行前面没有诸如“2020-03-09 13:00:00”的日期和时间,所以使用awk命令提取更新时间。

编写awk文件如下:
在这里插入图片描述
在这里插入图片描述

该操作之后得到如下结果,说明日期已经被提取出来了!
在这里插入图片描述

4、下面提取各个检测点的名字和PM2.5的指数等信息。观察发现,每一行都有共同的“ μg”和“m3”。于是考虑用这两个中的一个来提取它们所在的行。

在这里插入图片描述
修改awk文件如下:
在这里插入图片描述
如果用“m”来提取的话,会出现如下内容,多出来了一条无用的信息,因为这一行也含有“m”。这是我们不想看到的情况。
在这里插入图片描述
所以,选择用“g”来提取试试。如下图所示,没有多余的行,因此用“g”最为合适。

在这里插入图片描述
在这里插入图片描述

5、这时的结果已经很接近最后的格式了,但是前面没有年份。因此,用命令sed -e ‘s/s,更新:/2020- /g’将前面的“s,更新”字样改为2020。

在这里插入图片描述

6、最后,用命令sed ‘s/00:00/00:00:00/g’ 将时间从00:00改为00:00:00。

在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值