有用

电脑效率07 / 10

Unix 管道 10 件套

每个命令只做一件事,用 | 串起来就能组合。

  • 学会用时2 小时
  • 你的收获一行命令统计转录稿、日志
  • 用到的频率每周 1 次
  • 难度稍难

01为什么学

没学之前

统计一份文本里每个人说了几句话,要手工数。

学会之后

grep、sort、uniq 串起来,一行命令得到排行榜。

  • 日志、转录稿、数据文件的快速统计
  • 能一眼看懂 AI 写出来的 shell 脚本

02图解

原理图
flowchart LR
  A["ep.txt"] --> B["grep -o:取出说话人"]
  B --> C["sort:把相同的排在一起"]
  C --> D["uniq -c:数每个出现几次"]
  D --> E["sort -rn:按次数从多到少"]
同一种「取出来、排序、计数、再排序」,换个数据就是另一个统计。

03基本单元10 个

  • grep筛选
  • sed替换
  • awk按列处理
  • cut取列
  • sort排序
  • uniq去重计数
  • wc计数
  • head取前几行
  • xargs转参数
  • tr转换字符

04怎么用

  1. 每个命令只做一件事
  2. 用 | 把前一个的输出交给后一个
  3. 统计排行的经典组合sort | uniq -c | sort -rn
  4. 一步一步加,每加一步看一眼输出

05速查表

命令作用例子
grep筛选行grep "错误" log.txt
sort排序sort -rn
uniq -c相邻重复计数sort | uniq -c
wc -l数行数grep 错误 log.txt | wc -l
cut取列cut -d, -f2
head取前几行head -10

06动手试试

管道模拟器:统计谁说得最多

07套用一次

grep -o '^[A-Z][a-z]*:' ep.txt | sort | uniq -c | sort -rn

08常见的坑

  • uniq 前不先排序

    uniq 只合并相邻的重复,要先 sort。

  • 一次写很长的管道

    一步一步加,每步看输出。

09自测与练习

先做 10 秒自测,再动手练一下。

为什么 uniq -c 前面要 sort?

10 分钟小练习

用上面的模拟器,改一个输入,看排行榜怎么变。

看参考答案
第一列是出现次数,从多到少排列。

+配合着学

电脑效率的全部 10 条