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