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

阅读: 评论:0

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

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。

本文发布于:2024-02-04 20:25:36,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170715787759321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:为例   北京   网站   正则表达式   Linux
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23