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

编程入门 行业动态 更新时间:2024-10-24 02:02:11

Linux ——正则表达式过滤(以北京监测网站<a href=https://www.elefans.com/category/jswz/34/1769536.html style=为例)"/>

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。

更多推荐

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

本文发布于:2024-02-04 20:25:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1673319.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:为例   北京   网站   正则表达式   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!