大数据基础-Linux三剑客

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: Linux三剑客

Linux三剑客命令

这三个命令用法很多,也非常繁琐,可能几天也讲不完,但针对我们学习大数据,学会基本的,剩下去扩展即可

grep

grep:常用于查找文件里符合条件的字符串

网络异常,图片无法展示
|

grep -i:忽略大小写查找

网络异常,图片无法展示
|

grep +正则表达式

过滤以h开头 忽略大小写的信息

网络异常,图片无法展示
|

grep -n 快速定位位置

网络异常,图片无法展示
|

过滤所有Python进程信息

ps -ef | grep python

网络异常,图片无法展示
|

sed

接下来我们看一下Linux的第二个剑客,sed

之前我们修改文件是使用vi命令,大家可以想象一个场景,如果让你同时去修改上千个文件里面的某一行内容,你再使用vi去操作,是不是有点手软,虽然这个上千个文件有点夸张,但是在实际工作中类似这样同时修改10几个文件的场景还是有的,大家不要想着,就10几个文件,我使用vi命令不到10分钟就搞完了,如果你这样想,那就完了,程序员一定要懒,这个懒是指能用程序去做的,千万不要动手。

假设你花费5分钟写一个自动化程序,然后可以在秒级别内解决掉这十几个文件,这样是不是还剩下5分钟时间,把这5分钟时间花在陪女神聊天上面难道不香吗?

首先看一下,如何通过sed命令向文件中添加一行内容,

我的需求是这样的,我想要在hello.txt文件的第二行内容下面添加一行内容

添加数据

网络异常,图片无法展示
|

网络异常,图片无法展示
|

注意了,sed 默认不会直接修改源文件数据,而是会将数据复制到缓冲区中,修改也仅限于缓冲区中的数据,最终把缓冲区内的数据输出到控制台

sed '1a\haha' hello.txt 此操作会将数据添加到第一行下面(也就是第二行的位置)

sed '0a\haha' hello.txt 此操作会报错,行号是从1开始的

a参数是在后面添加

i参数是在前面添加

网络异常,图片无法展示
|

我们可以通过一个特殊参数 $ 表示在最后一行添加

网络异常,图片无法展示
|

删除数据

删除文件中的第7行内容

网络异常,图片无法展示
|

$参数,,删除最后一行

网络异常,图片无法展示
|

替换操作

sed后面的参数格式为[address]s/pattern/replacement/flags

这里的address 表示指定要操作的具体行,是一个可选项

s 表示替换操作,pattern 指的是需要替换的内容,replacement 指的是要替换的新内容,flags有多种用法,我们挑两种说一下

第一种就是flags可以表示为1~512之间的任意一个数字,表示指定要替换的字符串在这一行中出现第几次时才进行替换

第二种就是flags可以直接表示为g,这样的意思就是对每一行数据中所有匹配到的内容全部进行替换

如果flags位置的值为空,则只会在第一次匹配成功时做替换操作

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

只替换指定内容:增加address参数即可

网络异常,图片无法展示
|

修改操作

加-i参数即可

举例:

网络异常,图片无法展示
|

awk

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑

awk的基本格式:awk [option] programe file

这里的option是一个可选项,一般在这里来指定文件中数据的字段分隔符

programe 是具体的处理逻辑

file表示我们要操作的文件

在具体使用awk之前我们还需要掌握awk的一个特性,就是awk在处理文本数据的时候,它会自动给每行中的每个字段分配一个变量

变量从1开始,

$1表示是文本中的第1个数据字段

$2表示是文本中的第2个数据字段

以此类推。

还有一个特殊的 $0 它代表整个文本行的内容

我们来用awk操作 hello.txt

网络异常,图片无法展示
|

option里面指定字段分隔符,通过-F 参数

awk -F: '{print $1}' /etc/passwd

网络异常,图片无法展示
|

awk '/hello/ {print $1}'hello.txt

这种写法表示对每次读取到的那一行数据进行匹配

网络异常,图片无法展示
|

awk '($1 ~ /hello/) {print $1}'hello.txt

在这里面可以通过$来指定具体是哪一列,需要把具体的对比逻辑放到小括号里面

网络异常,图片无法展示
|

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
5月前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
178 0
|
5月前
|
安全 Java 大数据
大数据软件基础(1)—— Linux
大数据软件基础(1)—— Linux
47 0
|
3月前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
5月前
|
分布式计算 大数据 Hadoop
【经验分享】用Linux脚本管理虚拟机下的大数据服务
【经验分享】用Linux脚本管理虚拟机下的大数据服务
50 1
|
5月前
|
大数据 Linux
大数据基础:Linux基础详解
本课程主要通过对linux基础课程的详细讲解,让大家熟练虚拟机的安装使用,Linux系统的安装配置,学习掌握linux系统常用命令的使用,常用的软件安装方法,制作快照,克隆,完成免密登录,完成搭建集群前需要的时间同步,总之学完本课程就可以很好的进行接下来的大数据学习了。
57 5
大数据基础:Linux基础详解
|
5月前
|
大数据 Linux 虚拟化
大数据软件基础(3) —— 在VMware上安装Linux集群
大数据软件基础(3) —— 在VMware上安装Linux集群
78 0
|
缓存 关系型数据库 MySQL
万字长文|大数据学前准备之Linux入门笔记(附资料)(二)
对于大数据学习而言,Linux运维可以说是必备的技能。可以不研究的过于高深,但是基本的操作和使用一定要熟练。Linux的学习需要大量的实践,本文从linux的基本知识,实战操作,到常用的指令与软件安装等都有总结。 也是为了在掌握Linux的同时,也为今后的大数据学习做好准备。
166 0
万字长文|大数据学前准备之Linux入门笔记(附资料)(二)
|
Ubuntu Unix 大数据
万字长文|大数据学前准备之Linux入门笔记(附资料)(一)
对于大数据学习而言,Linux运维可以说是必备的技能。可以不研究的过于高深,但是基本的操作和使用一定要熟练。Linux的学习需要大量的实践,本文从linux的基本知识,实战操作,到常用的指令与软件安装等都有总结。 也是为了在掌握Linux的同时,也为今后的大数据学习做好准备。
277 0
万字长文|大数据学前准备之Linux入门笔记(附资料)(一)
|
3天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
25 2
Linux系统之lsof命令的基本使用