【问题标题】:Linux command sort issuesLinux命令排序问题
【发布时间】:2015-07-04 00:37:37
【问题描述】:

我正在尝试对一个充满数据的 .txt 文件进行排序。 我尝试以字典可以看到的方式按一行的第一个单词对文件进行排序。 (我尝试了排序-d) 我遇到的问题是这个-

输入文件


100 Eminem:Detroit_Vs._Everybody.txt  
100 Fabolous:She_Wildin'.txt  
100 Fetty_Wap:Trap_Queen.txt  
100 Kanye_West:All_Day.txt  
10 ASAP_Rocky:Lord_Pretty_Flacko_Jodye_2.txt  
10 Bon_Iver:Heavenly_Father.txt  
10% Ed_Sheeran:Take_It_Back.txt  
10 Florida_Georgia_Line:Dirt.txt  
10 Jay_Electronica:Road_To_Perdition.txt

命令: sort -d

输出


100 Eminem:Detroit_Vs._Everybody.txt  
100 Fabolous:She_Wildin'.txt  
100 Fetty_Wap:Trap_Queen.txt  
100 Kanye_West:All_Day.txt  
10 ASAP_Rocky:Lord_Pretty_Flacko_Jodye_2.txt  
10 Bon_Iver:Heavenly_Father.txt  
10% Ed_Sheeran:Take_It_Back.txt  
10 Florida_Georgia_Line:Dirt.txt  
10 Jay_Electronica:Road_To_Perdition.txt

根本没有发生任何变化。 我正在编写一段使用这些数据的代码,而 10% 介于 10 之间的方式确实会扰乱应用程序。

我想看看


100 Eminem:Detroit_Vs._Everybody.txt  
100 Fabolous:She_Wildin'.txt  
100 Fetty_Wap:Trap_Queen.txt  
100 Kanye_West:All_Day.txt  
10 ASAP_Rocky:Lord_Pretty_Flacko_Jodye_2.txt  
10 Bon_Iver:Heavenly_Father.txt  
10 Florida_Georgia_Line:Dirt.txt  
10 Jay_Electronica:Road_To_Perdition.txt  
10% Ed_Sheeran:Take_It_Back.txt  

在文件的其他部分,我有类似的问题,不仅是数字,还有字母和单词。 那我该怎么做呢?

【问题讨论】:

  • -d 告诉它忽略字母数字和空格以外的字符,因此它会忽略 % 字符。为什么要把那行放在最后?
  • 尝试对1010% 进行排序就像比较苹果和梨。也许第一列的数据应该是相同的类型以便正确排序。
  • Tobia Tesan 的回答很有魅力!他说- $ sort -V 考虑到了%
  • 是的,这个 Tobia 家伙非常棒 - 但是,大胖子免责声明,如果你打算在生产中使用它......好吧,考虑一个更清洁的解决方案,最好是集成的在你的“一段代码”中,无论是 Perl 脚本还是 Python 脚本或其他任何东西。

标签: linux file sorting terminal


【解决方案1】:

$ sort -V 考虑到%

【讨论】:

  • -V 将把10 放在100 之前。
  • 它做到了 - 10 Bon_Iver:Heavenly_Father.txt 10 Florida_Georgia_Line:Dirt.txt 10 Jay_Electronica:Road_To_Perdition.txt 10 TI:Paperwork.txt 10 Willow_Smith:Flowers.txt 10% Ed_Sheeran:Take_It_Back.txt 其中正是我想要的!
猜你喜欢
  • 2013-12-23
  • 2011-01-07
  • 2022-01-16
  • 2020-09-27
  • 2016-05-05
  • 2020-07-25
  • 2021-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多