• Linux 文件类信息统计指令(awk、sort、wc -l)


    wc -l

    cat file |grep -o word |wc -l 统计file文件中word这个关键字出现的个数 cat file |grep word |wc -l 统计file文件中word这个关键字出现的行数 

    AWK

    awk 是一种脚本语言,用于处理或分析文本文件。或者我们可以说,awk 命令主要用于根据列或字段或一组列对数据进行分组,它主要用于以有用的方式报告数据,它还使用 Begin 和 End 块来处理数据。

    备注: 在 awk 命令中 {print;} 用于打印所有字段及其值。

    打印特定的字段

    在 awk 命令中,我们使用 $ (美元) 符号后跟字段号来打印字段值。

    我们只打印字段 2 和字段 3,使用选项 -F,指定逗号为字段分隔符

    1. $ awk -F "," '{print $2, $3;}' awk_file
    2. Marks Max Marks
    3. 200 1000
    4. 500 1000
    5. 1000
    6. 800 1000
    7. 600 1000
    8. 400 1000

    打印与模式匹配的行

    打印包含单词 Hari 或 Ram 的行,示例如下

    1. $ awk '/Hari|Ram/' awk_file
    2. Ram,200,1000
    3. Hari,600,1000
    4. Ram,400,1000

    特定列中数据项的和

    在 awk 命令中,也可以根据搜索执行一些算术操作,语法如下所示

    $ awk -F, ‘$1==”Item1″{x+=$2;}END{print x}’ awk_file

    求一列中所有数字的总数

    在 awk 命令中,我们还可以计算某一列中所有数字的和。在下面的例子中,我们正在计算第 2 列和第 3 列的所有数字的和。

    1. $ awk -F"," '{x+=$2}END{print x}' awk_file
    2. 3500
    3. $ awk -F"," '{x+=$3}END{print x}' awk_file
    4. 5000

     

    分组求和

    实现类似 SQL 中的按某个字段分组求和,示例如下:

    1. $ awk -F, '{a[$1]+=$2;}END{for(i in a)print i", "a[i];}' awk_file
    2. Abharam, 800
    3. Hari, 600
    4. Name, 0
    5. Ghyansham, 1000
    6. Ram, 600
    7. Shyam, 500

    sort 排序指令

    以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序

    比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

    1. sort [选项] 参数
    2. cat file | sort 选项
    3. -n 按照数字进行排序
    4. -r 反向排序
    5. -u 等同于uniq,表示相同的数据仅显示一行
    6. -t 指定字段分隔符,默认使用 [Tab]键分隔
    7. -k 指定排序字段
    8. -o <输出文件>:将排序后的结果转存至指定文件
    9. -f 忽略大小写,会将小写字母都转换为大写字母来进行比较
    10. -b 忽略每行前面的空格
    1. #####按数字排序#####
    2. sort -n num.txt #按照数字进行排序
    3. #####UID排序#####
    4. sort -t ':' -k 3 -n /etc/passwd
    5. #也可以cut 方式 cat /etc/passwd | cut -d ':' -f 1,3
    6. #指定字段分隔符 指定排序第三字段(UID) 按照数字进行排序
    7. #####IP主机位排序#####
    8. sort -t '.' -k 4 -n /opt/ip
    9. #指定字段分隔符 指定排序第三字段(UID) 按照数字进行排序
    10. #####统计文件夹大小#####
    11. du -a | sort -nr -o du.txt
    12. #输出文件大小 数字倒序排序 写入du.txt文件

    uniq命令 操作重复行

    用于报告或者忽略文件中连续的重复行,常与 sort 命令结合使用 

    1. unig [选项] 参数
    2. cat file | uniq 选项
    3. cat file | uniq -c #统计出现次数
    1. cat /opt/ip | sort -n -t '.' -k4 | uniq -c
    2. #cat输出文件内容 sort根据.分隔的第四段数字排序 再交给uniq -c统计出现的次数
    3. 2 192.168.80.10
    4. 1 192.168.80.75
    5. 1 192.168.80.100
    6. 1 192.168.80.120
    7. 2 192.168.80.200
    8. 3 192.168.80.245
    9. cat /opt/ip | sort -n -t '.' -k4 | uniq -c | awk '{print $1}'
    10. 2
    11. 1
    12. 1 #awk筛选出次数
    13. 1
    14. 2
    15. 3

    我不是网管 - 超有用的 Linux / Unix awk 命令示例 - 知乎

    Linux shell编程常用命令(sort排序 uniq重复行 set +-x调试脚本 tr压缩替换字符 cut切片 split拆分 paste合并文件列 eval扫描变量)_shell的sort命令_低温热源的博客-CSDN博客

  • 相关阅读:
    ffmpeg安装及使用
    记一次使用MySQL5.7数据库数据目录下的文件恢复数据到个人云主机(CentOS7)中MySQL5.7的过程
    git和github
    海川润泽智慧灌区管理平台
    【网络通信】探索TCP通信与UDP通信的奥妙
    看到这个应用上下线方式,不禁感叹:优雅,太优雅了!
    【永艺XY椅】试用体验
    CSS之BFC
    数据结构:二叉树
    干货分享|使用 Istio 实现灰度发布
  • 原文地址:https://blog.csdn.net/qq_35789269/article/details/134543663