sort

-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思

1
2
3
4
5
6
cat /etc/passwd | sort # 简单排序
cat /etc/passwd | sort -t ':' -k 3 # 按第三个区间进行排序
sort -t ':' -k 3n # 第三个区间按数字排序
cat /etc/passwd | sort -t ':' -k 3nr # 第三个区间逆排序
cat /etc/passwd | sort -t':' -k 6.2,6.4 -k 1r # 第六个区间第二和第四个字符顺排序,再第一个区间逆排序
cat /etc/passwd | sort -t':' -k 7 -u #第七个区间排序并去重

uniq

-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行

1
2
3
4
cat words | sort |uniq # 简单排序再去重
sort testfile | uniq -c # 排序去重再加上重复数
sort testfile | uniq -dc #排序去重计数且只显示重复行
sort testfile | uniq -u # 排序去重仅显示唯一的行

cut

-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;

1
2
3
4
5
echo $PATH | cut -d ':' -f 5 # 取第五段
echo $PATH | cut -d ':' -f 3,5 # 取第三和第五段
echo $PATH | cut -d ':' -f 3- # 取第三至最后
echo $PATH | cut -d ':' -f 1-3 # 取第一至第三段
echo $PATH | cut -d ':' -f 1-3,5 # 取一至三段和第五段

wc

-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;

1
2
3
4
wc /etc/passwd # 简单统计
wc -l /etc/passwd #统计行数,在对记录数时,很常用
wc -w /etc/passwd #统计单词出现次数
wc -m /etc/passwd #统计文件的字节数