首页 / Linux 命令行入门教程 / 31. uniq / wc / tr / diff

Linux 命令行入门教程

31. uniq / wc / tr / diff

本教程共 90 篇 · 第 31 篇

31. uniq / wc / tr / diff

四个小工具,各自解决一类常见杂活。单独看简单,串起来很顶用。

uniq 去重

uniq 去掉相邻的重复行。所以通常先 sortuniq

sort list.txt | uniq

-c 顺便数每样出现几次:

sort list.txt | uniq -c

-u 只留出现一次的行,-d 只留重复过的行。

wc 统计

wc 是 word count,数行、词、字节。最常用 -l 数行数:

wc -l app.log

-w 数词数,-c 数字节数。配合管道(见 §25)能数任意结果:

ls /etc | wc -l

tr 转换字符

tr 把一个字符集换成另一个,比如小写转大写:

echo "hello" | tr a-z A-Z

也能删字符,-d 删除指定字符:

echo "hello123" | tr -d 0-9

diff 比文件

diff 逐行比较两个文件,告诉你哪里不同:

diff old.txt new.txt

< 开头是旧文件独有的行,> 开头是新文件独有的。改配置前后对比特别方便。

Tip

这四个命令几乎都吃管道输入。经典组合:sort | uniq -c | sort -rn,先去重计数再倒序排,一眼看出最高频的内容。

小结:uniq 去相邻重、wc -l 数行、tr 换字符、diff 比文件。配合管道各显神通。