LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2011|回复: 23

sort -t命令求助

[复制链接]
发表于 2006-6-27 18:05:25 | 显示全部楼层 |阅读模式
sort -t: file


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

执行命令的结果应该是每个域之间以冒号) 分隔
但是执行的结果和原来文件一样,没有任何变化。

请问是为什么

谢谢
发表于 2006-6-27 18:09:08 | 显示全部楼层
sort -t: -k2,2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-28 10:11:46 | 显示全部楼层
按照你的命令,输出的结果,域之间没有加“冒号”。

-t: 后面跟的冒号是指输出的分隔符还是读取的分隔符?

谢谢
回复 支持 反对

使用道具 举报

发表于 2006-6-28 10:16:15 | 显示全部楼层
读取的,你以为是输出的吗。输出的话,还是用awk。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-28 10:42:07 | 显示全部楼层
如果类似上面的文本(域间不是以: 分隔的,以空格分隔)

sort -t: file

那这个-t:参数就不起作用了?

谢谢seamonkey
回复 支持 反对

使用道具 举报

发表于 2006-6-29 10:52:40 | 显示全部楼层
是的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 14:16:52 | 显示全部楼层
cat file

127.0.0.1 localhost.localdomain localhost
192.1.104.147 bank

[color="Red"]sort -t. +3 file

192.1.104.147 bank
127.0.0.1 localhost.localdomain localhost

这个是数值比较,第3个分类域(147和1的比较),第1个数字都是1,接着比较第2个数字一个是4,一个是空值,那应该127.0.0.1排在前面呀,[color="red"](空值和4比哪个大).

能解释下上面的执行结果吗?


谢谢
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:31:48 | 显示全部楼层
  1. sort -t. +3 test
  2. Warning: "+number" syntax is deprecated, please use "-k number"127.0.0.1 localhost.localdomain localhost
  3. 192.1.104.147 bank
复制代码


我的sort说+n已经过时了。
回复 支持 反对

使用道具 举报

发表于 2006-6-29 14:35:32 | 显示全部楼层
虽然有警告,但结果是正确的。

你的locale输出是什么?

export LC_ALL=C,再试试看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-29 15:24:53 | 显示全部楼层
Post by seamonkey
  1. sort -t. +3 test
  2. Warning: "+number" syntax is deprecated, please use "-k number"127.0.0.1 localhost.localdomain localhost
  3. 192.1.104.147 bank
复制代码


我的sort说+n已经过时了。


哈哈,你是什么发行版


[color="Red"]sort -t. -k4 test

192.1.104.147 bank
127.0.0.1 localhost.localdomain localhost

我就是不明白,为什么是上面这个排序结果?

export LC_ALL=C   (这是指什么环境变量?)


谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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