shell sort 最后一列排序_大白话shell命令系列:数据统计篇(一)

6e8f3b8fac849078003133d9934cdf61.png

1. 说明

  • 阅读对象: shell入门小白
  • 阅读时间: 5分钟
  • 难易程度: 非常容易
  • 使用频率: 高频

2. 目的

从使用场景上,介绍常用shell命令,进行数据统计的用法,仅针对从来没接触过shell命令的小白同学, 熟悉Linux环境的同学,可以跳过这篇文章,直接看中等难度文章: 数据民工来取经儿:大白话shell命令awk:数据统计(二)

文章只简单描述数据分析过程中,常用命令使用方式,而不对命令本身做过细致讲解,因为一个shell命令用法会很大,有的也会很复杂,难以一篇文章都讲清楚。

2.1 学习环境

我已经在云端搭建好,按大白话shell命令系列: 阿里云端Linux环境篇 一步步来就中。

环境连接上后, 按照下面介绍,花5分钟玩一下?

2.2 练习数据

练习数据云端路径:/home/dataworker/data/userprofile.csv

本文所有命令演示,基于该数据,一共13行

实际上单机处理几百万上千万文本是没有问题的, 这里仅为方便演示

学校,sex,age,city
北大,男,20,北京
北大,男,21,北京
北大,男,20,北京
北大,男,21,北京
北大,男,20,北京
南大,男,21,北京
南大,女,20,上海
南大,女,21,上海
南大,女,20,上海
南大,女,21,上海
南大,女,20,上海
南大,女,21,上海

如果你连接上云端的学习环境, 直接执行如下命令查看即可

cd /home/dataworker/data
cat userprofile.csv

3. 统计场景

2.1 行数

  • 命令模板: wc -l 文件位置
  • 代码样例:
wc -l /home/dataworker/data/userprofile.csv
# 如果你当前路径为/home/dataworker/data, 那么可以省去绝对路径
# 以后,为简单起见,将省去绝对路径,如下:
wc -l userprofile.csv
  • 执行效果:

该文件共13行

003a5b0e29d124e1b30667b7d9a9379f.png

2.2 过滤关键词

  • 命令模板: grep '待过滤词' 文件位置
  • 代码样例:
grep '北京' userprofile.csv
  • 执行效果:

过滤出含有"北京"的行

9f1d4ca544934a112463bdb05e8040af.png

2.3 选取某列

  • 命令模板: cut -d'分隔符' -fm,n 文件位置
  • 代码样例:
# 如下命令解释:
# 1. 按英文逗号","分割成4列
# 2. 选取第1、4两列
cut -d',' -f1,4 userprofile.csv
  • 执行效果:

92af3307778ab62dcfba0c2784d7cf8a.png

2.4 按某列排序

  • 命令模板: sort -t'分隔符' -knr 文件位置
  • 代码样例:
# 如下命令解释:
# 1. 按英文逗号","分割成4列
# 2. 按第3列年龄,降序排列
# 3. 命令模板中的n, 表示按第几列排序,r表示倒排,没有r就是升序排列
sort -t',' -k3r userprofile.csv
  • 执行效果

可以看出, 显示顺序是按照年龄从大到小倒序排列

17b7a2285313b407a3bdfd433d3df69a.png

2.5 去重

  • 命令模板: sort -u 文件路径
  • 代码样例:
sort -u userprofile.csv
  • 执行效果:

13374ce1ee732a77e80bd3cf7f99c173.png

2.5 以上场景组合

某文件行去重后行数
  • 代码样例:
# 如下命令解释: 
# | 为管道符号, 可以简单理解为把上一条命令执行的结果输入到下一条命令
# 这样就把两个不同命令像水管一样连接起来使用
sort -u userprofile.csv | wc -l
  • 执行效果:

48a46b2965190e07098fcf27e5dd6a94.png
某文件包含关键词行数
  • 代码样例:
# 文件中, 包含"北京"的行数
grep '北京' userprofile.csv | wc -l
  • 执行效果:

67bc0aca6ffded732e598a0fafa56f53.png
文件按某列去重后排序
  • 代码样例:
# 数据处理目的: 选取第3、4列, 去重后,按照年龄倒序排列
cut -d',' -f3,4 userprofile.csv | sort -u | sort -t',' -k1r
  • 执行效果:

8bf47571f4cd73136897e4c4dbf70008.png

4. About Me

来自北京回龙观的一名数据民工, 2019年开始写写数据民工那些大白话

  • 微信公众号: workindata
  • 个人微信号: ITlooker
  • 知乎专栏: 大数据那些儿大白话

欢迎关注,加微,唠嗑,吐槽O(∩_∩)O哈哈~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值