+ -
当前位置:首页 → 问答吧 → 这个sort命令如何写,谢谢

这个sort命令如何写,谢谢

时间:2011-01-26

来源:互联网

aaabbb/#A1-B3-C1# 123 x...#
aaabbb/#A1-B1-C1# 123 y...#
aaabbb/#A1-B1-C2# 123 z ..#
aaabbb/#A1-B3-C2# 123 a .. #
aaabbb/#A1-B2-C1# 123 b ..#

怎么sort成

aaabbb/#A1-B1-C1# 123...
aaabbb/#A1-B2-C1# 123...
aaabbb/#A1-B3-C1# 123...
aaabbb/#A1-B1-C2# 123...
aaabbb/#A1-B3-C2# 123...

也就是根据中间# #之间的内容,C小的排前面,如果C一样,B小的排前面,

谢谢

作者: hustjack   发布时间: 2011-01-26

还是用awk吧

作者: cjaizss   发布时间: 2011-01-26

sort -t '-' -k 3, 2

作者: nhw_cs   发布时间: 2011-01-26

  1. [14:32:22-Bob@hzling08:~/test]-(1246)No.123->$ sort -t"C" -k2 urfile
  2. aaabbb/#A1-B2-C1# 123 b ..#
  3. aaabbb/#A1-B3-C1# 123 x...#
  4. aaabbb/#A1-B1-C1# 123 y...#
  5. aaabbb/#A1-B3-C2# 123 a .. #
  6. aaabbb/#A1-B1-C2# 123 z ..#
复制代码

作者: xiaopan3322   发布时间: 2011-01-26

本帖最后由 hustjack 于 2011-01-26 14:34 编辑

回复 nhw_cs


   第一个‘-’前面可能还有'-', 我只能肯定在第一个"#'前面没有'#', 这个怎么变,谢谢

有可能是这样的

  aB-aAbb/#A1-B3-C1# 123 x...#

作者: hustjack   发布时间: 2011-01-26

回复 hustjack
  1.     awk 'BEGIN{FS="[-#]";}{print $4,$0}' 2  |sort -k2n |awk '{$1=""}1'
  2. aaabbb/#A1-B1-C1# 123 y...#
  3. aaabbb/#A1-B2-C1# 123 b ..#
  4. aaabbb/#A1-B3-C1# 123 x...#
  5. aaabbb/#A1-B1-C2# 123 z ..#
  6. aaabbb/#A1-B3-C2# 123 a .. #
复制代码

作者: yinyuemi   发布时间: 2011-01-26