LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: soccer

sort -t命令求助

[复制链接]
发表于 2006-6-29 15:28:28 | 显示全部楼层
  1. sort --version
  2. sort (GNU coreutils) 5.96
  3. Copyright (C) 2006 Free Software Foundation, Inc.
  4. 这是自由软件。您可以按照 GNU GPL 协议 <http://www.gnu.org/licenses/gpl.html> 的条款再发布此 软件的副本,但我们无法保证相关法律不对这一情形进行限制。

  5. 由 Mike Haertel 和 Paul Eggert 编写。
复制代码


主要是LC_COLLATE变量起作用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-30 11:29:24 | 显示全部楼层
还是那个原因,执行LANG=C

排序结果,就对了

原来的语言变量是:en_US.UTF-8

真是想不通
回复 支持 反对

使用道具 举报

发表于 2006-6-30 11:39:47 | 显示全部楼层
我是一直把LC_COLLATE设为C的。

一些发行版如Arch, Slackware在/etc/profile中也有export LC_COLLATE=C这样的语句的,就是为了避免排序上出现意料之外的结果。

LC_ALL的优先级最高,会覆盖所有LC_*的值,所以我一直不建议用LC_ALL来设置locale。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-30 12:24:59 | 显示全部楼层
LC_COLLATE

这是变量名吗?
回复 支持 反对

使用道具 举报

发表于 2006-6-30 12:38:44 | 显示全部楼层
是啊,组成locale的一个种类,和排序有关。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-30 12:52:14 | 显示全部楼层
echo $LC_COLLATE

是空值 (默认是空的?)

要给他赋值 ?

export LC_COLLATE=C

是这样吗?


谢谢
回复 支持 反对

使用道具 举报

发表于 2006-6-30 13:02:42 | 显示全部楼层
用locale命令查看。如果不明确给它赋值,用echo回显不出来的。
回复 支持 反对

使用道具 举报

发表于 2006-6-30 15:56:22 | 显示全部楼层

关于t后面的:

这个冒号是指用:来确定整个文件(表)中如何区分列。默认使用空格,当指定-t以后,就用t后面紧跟的这个:来区分。给你个例子,我也是刚看帮助自己试验的。

sort -t: +0 -1 file
1 Tom Abcd 2006-11-28 11:28
2 Mary Abcd 2005-11-28 11:23
3 Terry Twin 2004-11-28 12:10
4 Fiona F4F4 2003-12-10 11:10
5 Bella SHE 2002-11-23 9:28
6 Liang Man 1980-03-05 5;25

sort -t: +1 -2 file
6 Liang Man 1980-03-05 5;25
3 Terry Twin 2004-11-28 12:10
4 Fiona F4F4 2003-12-10 11:10
2 Mary Abcd 2005-11-28 11:23
1 Tom Abcd 2006-11-28 11:28
5 Bella SHE 2002-11-23 9:28
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-30 16:55:06 | 显示全部楼层
Post by liangandlin
这个冒号是指用:来确定整个文件(表)中如何区分列。默认使用空格,当指定-t以后,就用t后面紧跟的这个:来区分。给你个例子,我也是刚看帮助自己试验的。

sort -t: +0 -1 file
1 Tom Abcd 2006-11-28 11:28
2 Mary Abcd 2005-11-28 11:23
3 Terry Twin 2004-11-28 12:10
4 Fiona F4F4 2003-12-10 11:10
5 Bella SHE 2002-11-23 9:28
6 Liang Man 1980-03-05 5;25

sort -t: +1 -2 file
6 Liang Man 1980-03-05 5;25
3 Terry Twin 2004-11-28 12:10
4 Fiona F4F4 2003-12-10 11:10
2 Mary Abcd 2005-11-28 11:23
1 Tom Abcd 2006-11-28 11:28
5 Bella SHE 2002-11-23 9:28


sort -t: +0 [color="Red"]-1 file


这个 -1 是什么意思?
回复 支持 反对

使用道具 举报

发表于 2006-6-30 17:03:51 | 显示全部楼层
再次问一下,你们的sort是什么版本。

-n表示在第n个域结束时停止sort。

+0 -1即只sort第一个域
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表