分页: 1 / 2
文件内的排序问题
发表于 : 2012-03-06 11:11
由 Schumacher
有个文件club_member,内容如下:
代码: 全选
[demo@host-6-81 ~]$ cat club_members
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
现在要根据最后一个field排序(18, 22, 9,13),sort 选项试了几个都没有用,求助。
Re: 文件内的排序问题
发表于 : 2012-03-06 11:22
由 鲍尔默
代码: 全选
sort -t ' ' -k 5 -n
Re: 文件内的排序问题
发表于 : 2012-03-06 11:27
由 Schumacher
试过了,没效果。
代码: 全选
[demo@host-6-81 ~]$ sort -t ' ' -k 5 -n club_members >s3
[demo@host-6-81 ~]$ cat s3
Pam Murray 4 657-4324 18
Joyce Murray 7 235-1432 13
Jim Brown 8 467-8743 22
Jim Roberts 17 728-8295 9
Re: 文件内的排序问题
发表于 : 2012-03-06 11:29
由 鲍尔默
代码: 全选
>0< ~$ cat <<EOF | sort -t ' ' -k 5 -n
> Pam Murray 4 657-4324 18
> Jim Brown 8 467-8743 22
> Jim Roberts 17 728-8295 9
> Joyce Murray 7 235-1432 13
> EOF
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
>0< ~$
Re: 文件内的排序问题
发表于 : 2012-03-06 11:39
由 Schumacher
这个问题实际上是一道题:
Sort the file club_members numerically by meetings attended (this is the last field). Send the output to file s3
能用一个shell命令搞定就好了。
Re: 文件内的排序问题
发表于 : 2012-03-06 11:55
由 自由建客
你那有制表符!别用 -t ' ',直接用 sort -k 5 -n 就行了!
Re: 文件内的排序问题
发表于 : 2012-03-06 13:26
由 lilydjwg
[bash]ghc -e 'import Data.Function' -e 'import List' -e 'getContents >>= putStr.unlines.(sortBy (compare `on` ((read::String->Int).last.words))).lines'[/bash]
Re: 文件内的排序问题
发表于 : 2012-03-06 14:40
由 Schumacher
解决了,谢谢楼上诸位的帮忙。
代码: 全选
[demo@host-6-113 ~]$ sort -k 5 -n club_members >s3
[demo@host-6-113 ~]$ cat s3
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
Re: 文件内的排序问题
发表于 : 2012-03-06 15:01
由 lilydjwg
Schumacher 写了:解决了,谢谢楼上诸位的帮忙。
代码: 全选
[demo@host-6-113 ~]$ sort -k 5 -n club_members >s3
[demo@host-6-113 ~]$ cat s3
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
来个有中间名的就完了。
Re: 文件内的排序问题
发表于 : 2012-03-06 15:02
由 自由建客
lilydjwg, 人家是作业题!
Re: 文件内的排序问题
发表于 : 2012-03-06 15:08
由 lilydjwg
自由建客 写了:lilydjwg, 人家是作业题!
国内的课程作业?没见过用 shell 解的呢。。
Re: 文件内的排序问题
发表于 : 2012-03-06 15:22
由 Schumacher
http://linuxzoo.net/
这题是linuxzoo.net上面的题目,这个网站提供虚拟机环境和一些小题目,可以练习linux系统管理,ssh到它的虚拟机上,做题目,可以查对错,还不错。
Re: 文件内的排序问题
发表于 : 2012-03-08 18:02
由 Think1st
lilydjwg 写了:Schumacher 写了:解决了,谢谢楼上诸位的帮忙。
代码: 全选
[demo@host-6-113 ~]$ sort -k 5 -n club_members >s3
[demo@host-6-113 ~]$ cat s3
Jim Roberts 17 728-8295 9
Joyce Murray 7 235-1432 13
Pam Murray 4 657-4324 18
Jim Brown 8 467-8743 22
来个有中间名的就完了。
稍微解决一下,这样子?
代码: 全选
cat club_members | sed -e 's/ \{2,\}/\t/g' | sed -e 's/\t\{2,\}/\t/g' | sort -t $'\t' -k4 -n
Re: 文件内的排序问题
发表于 : 2012-03-10 4:26
由 fnan
哪有名字总是两个域的。
Re: 文件内的排序问题
发表于 : 2012-03-10 12:58
由 lilydjwg