当前课程知识点:高级大数据系统 >  Basics of Linux Data Processing >  Manipulating Data on Linux >  Video

返回《高级大数据系统》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《高级大数据系统》慕课在线视频列表

Video课程教案、知识点、字幕

我们下面来介绍一下

就是基于刚刚已经知道的

大家能够去查看数据

已经能够去简单的操控

这个行和列

那么我们下面来看看我们怎么样

进行一些真正的这种数据的挖掘

那我们从这个查找入手

在这个linux里面有一个叫做grep

或者叫做grep的

这样一个命令

那么这个命令可以帮助

大家在这种文本的文件上

进行数据的一个查找

那我们来通过一些简单的例子

给大家看看

这个grep到底能够

做什么样的事情

那么同样的

在我的这个目录底下

我们有3个文件

我们有1.txt

包含了这样的一些内容

然后我们有2.txt

包含这样的一些内容

然后我们还有刚刚有

用cat形成了一个3.txt

有包含这样的一些内容

现在我们来做一次查找

我们假设针对1.txt来做

那么我们来看看这个group到底是怎么用的

它的用法实际上标准的命令是这样的

它会从这个文件

以文件作为它输的一个输入参数

然后以一个子串字符串

作为它匹配的这样一个模式

比如说我们现在想匹配的是

aa这样一个模式

然后我们想要查找的文件是1.txt

那么它的输入方式

就是这样的一个样子

那么这行命令它的一个作用

就是说我们想要把1.txt中

包含aa这个子串的行

全部给打印到屏幕上

那我们来看一下效果

我们输入aa 1.txt之后

我们发现4个A的这一行可以打印出来了

也就是说一的这一行

那我们假设我们把aa变成一个呢

变成一个a的时候

我们就发现它输出变成两行

因为第一行和最后一行

都被匹配到了

所以他们完整的行

都打印到这里

所以用grep这个命令

大家实际上就可以简单的

从我们关心的这样一个数据集中

提取出你想要的行

比如说日志文件中包含特定的

这种关键词的一些日志

或者说大家处理的数据中

包含某一些特别的这个类的

一些这个关键词

那我们来看

这个命令它还有一些什么样的

这种更加复杂

或者说更加高级的这个使用方式

第二个使用方式就是说

我们对grep进行使用的时候

我们不但可以对单个文件

我们也可以对多个文件进行

就像我们PPT里面现在提到的这样

那么我们来看一个具体的例子

我们知道在一和三两个txt文件里面

都包含了这个a的字符串

那我们来看看我们

对两个文件进行搜索的时候

会出现什么样的一个效果

grep同样

我们要搜的是aa

那么我们要查找的文件是

1.txt和3.txt

那么我们可以看到

在1.txt里面包含了

这样的行

这样的行它包含了aa这个关键词

那3里面包含了这样的行

它包含了这样的关键词

那么这是我们可以用

grep对多个文件进行搜索

得到一个效果

当然可能有同学会说

其实我并不希望

把这个完整的行打印出来

我可能想知道这个aa这样一个关键词

或者我们搜索的对象到底在哪

出现过就可以了

其实也很简单

我们只需要加上一个参数叫做L

我们就可以只关心这个

输出的文件名

那么我们就发现

我们想要搜的这个模式

实际上在两个文件中都出现过

这是我们在grep里面

假设想要定位文件的时候

我们需要去做的这样一个操作

那么在这边

大家可以看到有这样的一个例子

帮我们去完成这样的事情

那么grep

还能做一些什么样的事情

我们可以统计这个

某一个模式在文件中出现的次数

那我们来看一下

当我们用grep-c这个命令

进行模式的搜索的时候

实际上我们是可以统计

某一个模式在这个文件中

出现的一个次数

比如说同样我们以这个a为例

我们来统计1中出现a的这样一个次数

我们发现它出现在两行

尽管这个第一行它包含了4个a

但是实际上我们的这种统计是

以行作为单元来进行输出的

所以它输出在1点txt中

包含了两个行

那么这两行包含我们输入的这样

一个字符串-c起到了对数量进行统计的目标

那么用-C实际上大家也可以简单的对

大规模的数据进行一个简单的一个出分

比如说我们想知道

在一个比较大的文件里面

我们关心的某一些数据到底出现多少次

进而知道我们后面设计相应的算法

或者说实现相应的这个处理的策略

那么在这个grep里面

还有一个很重要的功能

就是说它能对正则表达式进行一个匹配

当然正则表达式是一个

非常一个大的这样一个讨论的主题

那我们这门课只是告诉大家

在grep里面你可以用正则表达式

当大家用正则表达式

去做事情的时候

大家可能需要去参考一些

正在表达式的这种文档

或者是论文

那么正则表达式可以做到一些什么样的搜索

首先 正则表达式它能对应到自动机

所以我们可以对非常复杂的

有规律的这种文本进行匹配

比如说手机号码

比如说这种人的生日

比如说一些特定的句子

那么就可以通过正则表达式来得到

那我们来看一下一些简单的

正则表达式它的例子是什么样

正则表达式同样它的命令用grep

然后我们在这里面会把这个表达式的式子

写成我们搜索的这样一个模式

那么这一次我们搜索1.txt

我们不再用a这样一个模式

我们不但要求它出现了

我们还要求了一下这个出现的位置

比如说我们要求它出现在行首

那么行首的正则表达式

是用一个向上的这个尖号来表示

那这时候我们对一进行搜索

我们发现

他只给出了aaaa这样的一条记录

这一行

那么实际上我们看到1.txt里面

包含a的位置

不只是这个四个a

还有最后一行

也出现了a

但是由于我们的正则表达式中

约束了它的位置

这时候它只输出了这个第一行

同样我们可以让A出现在句尾

比如说我们要求搜索a

一定在这个行尾

那么我们就会看到它出现的

这个模式就包含了这两个

所以这是我们用正则表达式

进行一些复杂的匹配的时候

我们需要能够做到的一些事情

同样正则表达式

就像我刚刚说的

它可以匹配比较复杂的这种模式

我们利用正则表达式

实际上是可以

做一些比较复杂的搜索

比如说我们可以对头进行匹配

让它打印出某一些日志

包含某些头的这种记录

那么这对日志分析是很有帮助的

这个可以大家在后面的

实际使用当中去体会

用grep结合正则表达式

能够达到的这种搜索的效果

grep里面另外一个重要的参数

是叫做-a

那么我们在我们刚刚的例子中

其实

我们再用grep

进行搜索的时候

它是一个大小写敏感的一个搜索

那我们可以通过一个例子

给大家示意一下

比如说我们在这个1.txt

文件里面去搜索a

那么它给出了两行

分别包含了四个a和一个a

当我们对它进行大写的a

进行搜索的时候

我们发现它并没有输出

所以它是一个大小写敏感的

那么当我们要忽略

这种敏感的时候

我们就可以使用-a这个命令

那这时候它会把匹配到

无论是大写或者小写的字母

都输出出来

这些行都会被打印到屏幕上

那么grep还有另外一个参数

叫做-O

那-O的一个作用

实际上是强制grep

把匹配到的模式给输出来

而不是完整的一行

我们来看它的效果是什么样

比如说我们依然要匹配a这个模式

那么我们对1.txt进行输出

那么我们发现它输出了

五个单独的a

实际上这五个单独的a

是在第一行和最后一行

分别匹配到的这样一个模式

在某一些情况下

实际上我们的确

需要这样的一个目标

尤其是当我们结合

正则表达式的时候

我们比如说从一个文档中

提取股票代码

或者提取手机号码

我们这时候并不需要

他把完整的那一行

那一行可能包含了网页其他的一些信息

那么我们关心的数据

仅仅是匹配到的手机号

或者说是股票号码

那这时候我们

就可以通过-O把我们关心的

这个模式给输出出来了

还有一个命令叫做参数

叫做这个-V

那么看-v的作用是什么呢

我们大家也来看一下

我们发现当我们用grep-v

对1.txt中的

a进行搜索的时候

实际上包含a的两行

都没有输出出来

所以大家可以理解

-v是将我们搜到的结果

进行反向的输出

也就是说把没有匹配上

我们当前搜索的这个模式的行

给输出出来

值得注意的是

其实这些命令是可以叠加

和这个交替着使用的

比如说我们可以把-V

和这个-i给结合使用

这时候我们起到效果

就是说我们让它忽略大小写

同时

让它进行反向的输出

那么和我们刚刚这个

预想的结果是一致的

所以grep实际上提供了一系列

供大家去操控数据的

这样一个方式

大家可以在里面

进行模式的匹配

进行这个正则表达式的这样一个匹配

然后进行这个一些模式的提取

固定的这种pattern的输出

所以是大家能够去在linux上

处理数据的一个

最简单的一个工具

高级大数据系统课程列表:

Introduction to Big Data Systems

-What is big data and what is big data system?

--Video

-Problems in big data systems?

--Video

-Overview of the course

--Video

-Principles of big data system design

--Video

Basics of Linux Data Processing

-Manipulating Data on Linux

--Video

--Video

--Video

-Basics of Linux Data Processing--Manipulating Data

-Running Commands on a Single Machine

--Video

-Running Commands on a Single Machine--作业

-Using a Linux Cluster

--Video

-Using a Linux Cluster--作业

Distributed File System

-Storage for Big Data Computing: Distributed file system

--Video

-Storage for Big Data Computing: Distributed file system--作业

-File system and GFS

--Video

-File system and GFS--作业

-Understanding HDFS using Legos

--Video

-Understanding HDFS using Legos--作业

-File System Implementation and DFS

--Video

--Video

-File System Implementation and DFS--作业

MapReduce

-What is MapReduce and why

--Video

-What is MapReduce and why

-Learn MapReduce by playing with cards

--Video

-Processing pattern

--Video

-Processing pattern--作业

-Hadoop

--Video

-Hadoop--作业

-Algorithms in MapReduce

--Video

-Algorithms in MapReduce--作业

-Tutorial

--Video

In-memory Processing

-Background

--Video

-Background--作业

-Spark

--Video

-Spark--作业

-Use Spark for data mining

--Video

-Use Spark for data mining--作业

-Spark data processing

--Video

-Spark data processing--作业

-Experiment in Spark

--Video

-Experiment in Spark--作业

Streaming Data Processing

-Introduction to streaming data processing

--Video

-Introduction to streaming data processing--作业

-Storm

--Video

--Video

--Video

-Storm--作业

-Spark streaming

--Video

--Video

-Spark streaming--作业

NoSQL

-NoSQL introduction

--Video

-NoSQL introduction--作业

-Common Advantages

--Video

-Common Advantages--作业

-Bigtable

--Video

-Bigtable--作业

-Master Startup

--Video

-Master Startup--作业

-HBase

--Video

-HBase--作业

Graph Processing

-What is GraphDB and Graph data processing

--Video

-What is GraphDB and Graph data processing--作业

-Graph systems

--Video

-Graph systems

-Example of a GraphDB

--Video

-Example of a GraphDB--作业

Machine Learning System

-Mahout

--Video

-Mahout--作业

-Case Study: Recommendation

--Video

-Case Study: Recommendatio作业

-Recommendation in Mahout

--Video

-Recommendation in Mahout--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。