用sort 和tsort 对文件进行排序
http://tech.ddvip.com 2007年02月27日 社区交流
本文详细介绍用sort 和tsort 对文件进行排序
最后一组选项处理输入、输出和临时文件。例如,-c选项,当它用于sort -c < file中时,它检查输入文件是否已进行了排序(您也可以使用其它选项),如果已进行了排序,则报告一个错误。这样,在处理可能需要花很长时间进行排序的大型文件之前,可以很方便地对其进行检查。当您将-u选项和-c选项一起使用时,会被解释为一个请求:检查输入文件中不存在两个相同的行。
当您处理大型文件时还有一个很重要的-T选项,它用于为临时文件(这些临时文件在sort完成工作之后会被除去)指定其它目录,而不是缺省的/tmp目录。
您可以使用sort来同时处理多个文件,这样做的方式基本上有两种:首先可以使用cat来并置它们,如下所示:
cat file1 file2 file3 | sort > outfile或者,可以使用下面这个命令:
sort -m file1 file2 file3 > outfile第二种情况有个条件:在将所有输入文件一起进行sort -m之前,每个文件都必须经过排序。这看起来似乎是个不必要的负担,但事实上这加快了工作速度并节约了宝贵的系统资源。对了,别忘了-m选项。在这里您可以使用-u选项来禁止打印相同的行。
如果需要某种更深奥的排序方法,您可能要查看tsort命令,该命令对文件执行拓扑排序。拓扑排序和标准sort之间的差别如清单 2 所示(您可以从 参考资料下载 happybirthday.txt)。
清单 2. 拓扑排序和标准排序之间的差别
$ cat happybirthday.txt
Happy Birthday to You!
Happy Birthday to You!
Happy Birthday Dear Tux!
Happy Birthday to You!
$ sort happybirthday.txt
Happy Birthday Dear Tux!
Happy Birthday to You!
Happy Birthday to You!
Happy Birthday to You!
>$ tsort happybirthday.txt
Dear
Happy
to
Tux!
Birthday
You!
当然,对于tsort的使用来说,这并非一个非常有用的演示,只是举例说明了这两个命令输出的不同。
tsort通常用于解决一种逻辑问题,即必须通过观察到的部分次序预测出整个次序;例如(来自 tsort 信息页中):
tsort <<EOF
a b c
d
e f
b c d e
EOF 会产生这样的输出 a
b
c
d
e
f
有什么问题或意见吗?我希望收到您的来信 - 请将邮件发送到 jacek@artymiak.com。
下一次,我们将深入研究tr。
来源:IBM DW中国 作者:Jacek Artymiak 责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……