Shell 打印文件的第n列或行中的第n个字符,我们经常需要从文件数据中提取少数几列。例如在以成绩排序的学生列表中,我们希望得到成绩最高的4名学生的姓名。来看看如何实现。
实战演练
这种任务通常都是使用awk
来完成。
(1) 用下面的命令打印第5列:
$ awk '{ print $5 }' filename
(2) 也可以打印多列数据并在各列间插入指定的字符串。
如果要打印当前目录下各文件的权限和文件名,可以使用下列命令:
$ ls -l | awk '{ print $1 " : " $8 }'
-rw-r--r-- : delimited_data.txt
-rw-r--r-- : obfuscated.txt
-rw-r--r-- : paste1.txt
-rw-r--r-- : paste2.txt
学习本章内容可以参考如何从文本文件中提取数据 和awk 命名相关知识。