美文网首页
shell 统计常用

shell 统计常用

作者: leobupt | 来源:发表于2017-10-26 11:38 被阅读0次

1. 目的

数据统计中常用的shell命令
目标用户: shell小白

1.1 样例文本

  • file1
级别,地区,企业级别,企业数量
1,北京,A,1
1,上海,B,2
0,广东,C,3
0,河北,D,4
2,南京,E,5
0,河北,F,6
1,北京,G,7
1,上海,H,8
2,南京,I,9
0,云南,J,10
2,石家庄,A,10
3,秦皇岛,B,20
2,石家庄,C,30
3,邢台,D,40
0,广东,E,50
1,北京,F,60
2,石家庄,G,70
3,邯郸,H,80
3,新乡,I,90
0,广东,J,100
0,广东,J,1000

1.2 命令

参考: grep详解
参考: cut命令详解
参考: sed命令详解
参考: awk语言详解

2.场景

2.1 查找

  • 找到包含"XX"的行
# 场景一: 找到"北京"的行
# 方法1:
cat file1 | grep 北京
# 方法2: 
grep 北京 file1

# 场景二: 找到包含"北京"或者"南京"的行
# 方法1:
cat file1 | grep -E "北京|南京"
# 方法2:
grep -E "北京|南京" file1

# 场景三: 找到不包含北京的行
grep -v 北京 file1

# 场景四: 找到不包含北京和南京的行
grep -vE "(北京|南京)" file1

# 注意
grep -vE "[北京|南京]" file1  # 是指包含“北”,“京”,“|”,“南”,“京”这四个字符的行
  • 按行查找
# 场景1: 查找并打印出3-6行
sed -n '3,6p' file1 # -n表示打印查找匹配的结果, 如果不加会打印整个file1
  • 按列查找
# 场景1: 查找按","分割的第2列
方法一: 
cut -d','    -f2  file1 
方法二: awk难度稍高, 可跳过
awk -F','  '{print $1}'  file1 # $1表示按逗号分割的第1列, $0比较特殊表示整行
# 场景2: 查找按","分割的第2-3列
cut -d','   -f2-3 file1
# 场景3: 某列值满足某种条件的行: 如大于N的行
awk -F','  '$1>1{print $0}'   file1  # 输出第1列满足大于1的行

2.2 替换

  • sed命令
# 场景1: 替换文件全部的A词变为B词
sed 's/hello/hi/g' file1
# 场景2: 替换以A开头,替换为B
sed 's/^3/B/g' file1   
sed 's/$3/B/g' file1    # 每行以3结尾替换为B

2.3 删除

# 场景1: 删除文件第N行
# 方法1: 结果保存到file2(注意: file1没有变化)
sed '1d' file1 > file2 # 删除第1行
sed '$d' file1 > file2 # 删除最后1行
# 方法2: 直接将file1中第1行删除(注意: file1已变化)
sed -i '1d' file1

# 场景2: 删除第n到m行
sed '2,4d' file1 > file2  # 删除2至4行,保持到file2, 其中file1不变
sed -i '2,4d' file1  # 直接删除file1中2至4行,file1已改变

# 场景3: 删除包含"XX"的行, 结果保存到file2
# 方法1: 结果保存到file2(注意: file1没有变化)
sed /北京/d  file1 > file2
# 方法2: 直接将file1中包含"XX"的行删除(注意: file1已变化)
sed -i /北京/d  file1

2.3 排序

# 场景一: 单列排序, file1第4列倒序排列
cat file1 | sort -k4nr -t ',' 
# 场景二: 多列排序, file1第1列倒序排列, 第2列倒序排
cat file1 | sort -k1nr -k4nr -t ',' 
# 分隔符: tab, 须加$符号
cat file1 | sort -k1nr -k4nr -t $'\t' 

相关文章

  • shell 统计常用

    1. 目的 数据统计中常用的shell命令目标用户: shell小白 1.1 样例文本 file1 1.2 命令 ...

  • nginx系列:常用利用shell统计日志

    0x01:根据访问IP统计UV UV(Unique Visitor)独立访客,统计访问某站点的用户数; IP(In...

  • 常用的shell变量用法d672534acf8d9f548023

    常用的shell变量: $0 Shell本身的文件名, 带有相对路径。(常用于shell中脚本路径切换) $1~$...

  • HBASE SHELL常用命令

    HBASE SHELL常用命令 标签: HBase Shell 1. 进入hbase shell console ...

  • Hbase Shell

    一些常用的hbase shell命令示例: hbase中出现16进制字符串的处理: 将其用 双引号 引起来 统计h...

  • adb命令

    常用非Shell命令:1、adb shell dumpsys activity top2、adb shell du...

  • Shell参考资料

    shell 目录 Shell简介 Shell常用命令 Shell里面的括号 Shell里面的单引号和双引号 She...

  • 整理linux基础命令|2018-10-23

    shell快捷键 | linux 下常用两种脚本 shell - - unix -- Bourne shell b...

  • Linux Shell:Shell循环语句

    摘要:Linux,Shell Shell中常用循环有for,while Shell循环语法结构 (1)for循环语...

  • Shell命令汇总

    1、一般常用命令 (1)Shell 常用命令总结 (2)Shell的18条常用命令整理 2、文件操作常用命令 (1...

网友评论

      本文标题:shell 统计常用

      本文链接:https://www.haomeiwen.com/subject/momhpxtx.html