cut
从文件的每一行抽出一部分。
常用选项:
- -d 指定分隔符,如:
-d:
指定冒号为分隔符。 - -f 指定要抽取的字段,可以用逗号分隔要选取的字段,也可以用
-
指定要选取的字段范围,如:-f1,2
抽取第1、2个字段,-f1-3
抽取第[1-3]的字段。 - -c 抽取指定范围的字符,包含起始位置,如:
-c9-
抽取第9个及以后的的字符,-c1-3,22-
抽取第1-3以及第22及个以后的字符。
举例:
cut -d: -f1,6 /etc/passwd
cut -c2- /etc/passwd
cut -c1-5,22- /etc/passwd
sort
对文本文件的每一行进行排序,默认按ASCII的字符升序排序。
常用选项:
- -f 把小写字母转换为大写字母来比较。
- -i 忽略非字母。
- -h 人类可读数字排序,如:3k < 2M < 1G
- -n 按数字排序。
- -r 降序排序。
- -R 随机排序。
- -k 按指定字段排序,如
-k 2
表示按第二个字段排序。
uniq
对已排序好的文件删除重复行或统计重复次数。
常用选项:
- -d 只输出重复行。
- -c 计算每一行重复的次数。输出结果是两列: 重复次数 行内容
举例:
echo -e "1\n1\n1\n2\nx\ny" | uniq -d
只会输出: 1-
echo -e "1\n1\n1\n2\nx\ny" | uniq -c
, 输出结果如下:
3 1
1 2
1 x
1 y
du
du 命令用于查看目录下文件及文件夹的大小(粗略,非精确, estimate)。
有用的选项:
- -h 以人类可读的单位显示大小,如1.1K, 1.2M, 1.3G。
- -s 为每个参数显示一个总和。如:
du -s *
则显示当前目录下文件及直接子目录的大小。 - -b -k -m 分别表示以 B KB MB 为单位。
- –exclude=pattern 排除匹配模式pattern的文件。
- –time 显示文件或目录的最后修改时间。
举例:
du -sh *
命令的输出虽然是可读的,但却没有排序,下面两个脚本是按大小排序的可读格式输出:
for x in K M G; do du -sh * | grep -P “^[1-9]+\.?[0-9]*$x” | sort -n; done
du -sh * | sort -h
欢迎关注我的微信公众号: coderbee笔记,可以更及时回复你的讨论。