goddog@ubuntu:~$ ls -lF /boot | awk '{ print $9 " " $5}' abi-4.10.0-19-generic 1433520 config-4.10.0-19-generic 206872 …… 看上去有些凌乱啊。为了使awk命令的显示结果更清晰,在awk命令中引入了以下两个可以在print命令表达式中运用的特殊的字符序列:
利用 \t 重新修改一下上面的例子,这次是文件大小在前,文件名随后,文件大小和文件名由制表键隔开: goddog@ubuntu:~$ ls -lF /boot | awk '{print $5 "\t" $9}' 1433520 abi-4.10.0-19-generic 206872 config-4.10.0-19-generic …… 上述的显示结果是没有顺序的,如果你想了解文件磁盘空间的运用情况,最关心的就是大文件,因为只有大文件才对系统的冲击比较大。假设你现在想知道最大的3个文件的大小并且显示的结果是按文件由大到小的顺序列出。命令如下:其中sort命令中的-r表示由大到小排序,-n表示按数字排序: goddog@ubuntu:~$ ls -lF /boot | awk '{ print $5 "\t" $9}' | sort -rn | head -3 41306042 initrd.img-4.10.0-19-generic 7035296 vmlinuz-4.10.0-19-generic 2937260 System.map-4.10.0-19-generic goddog@ubuntu:~$ ls -lF /boot | awk '{ totalsize = totalsize + $5; print totalsize }' 0 1433520 …… 53475010 结果除了显示最后一行的所有文件大小的总和之外,还显示了太多不重要的信息,为此,将这个命令的结果通过管道送给tail -1命令: goddog@ubuntu:~$ ls -lF /boot | awk '{ totalsize += $5; print totalsize }' | tail -1 53475010 还有一种更好的方式是在awk命令中运用END关键字,命令如下: goddog@ubuntu:~$ ls -lF /boot | awk '{ totalsize += $5} END { print totalsize }' 53475010 |