Linux 命令行入门教程
31. uniq / wc / tr / diff
本教程共 90 篇 · 第 31 篇
31. uniq / wc / tr / diff
四个小工具,各自解决一类常见杂活。单独看简单,串起来很顶用。
uniq 去重
uniq 去掉相邻的重复行。所以通常先 sort 再 uniq:
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 比文件。配合管道各显神通。