我正在写一个bash脚本。我有这样的文件
$(document).on('click','.bronze', function(){ //stuff goes here})
我想按照特定的方式对此文件进行排序。让我们在两个./1#1#d41d8cd98f00b204e9800998ecf8427e
./11.txt#2#d41d8cd98f00b204e9800998ecf8427e
./12/1#1#d41d8cd98f00b204e9800998ecf8427e
./12/1#2#d41d8cd98f00b204e9800998ecf8427e
./12/1.txt#1#d41d8cd98f00b204e9800998ecf8427e
./12/1.txt#2#d41d8cd98f00b204e9800998ecf8427e
./12/2.txt#1#d41d8cd98f00b204e9800998ecf8427e
./12/2.txt#2#d41d8cd98f00b204e9800998ecf8427e
./1#2#d41d8cd98f00b204e9800998ecf8427e
./13#2#d41d8cd98f00b204e9800998ecf8427e
./2.txt#1#5d74727d50368c4741d76989586d91de
./2.txt#2#5d74727d50368c4741d76989586d91de
字符第二部分之间调用第一个#
部分的字符。例如,给出如下这样的一行:
#
第一节:./1
第二节:2
我想要实现的是首先根据第一部分然后根据第2部分对该文件进行排序。所以这个例子的错误是第9行,它应该是第2行。
有没有简单的方法来实现这一目标?我不确定如何解决这个问题。也许我应该以某种方式将此文件排序到第一个./1#2#d41d8cd98f00b204e9800998ecf8427e
然后再根据第二部分排序?即使这是一个很好的答案,也不确定该怎么做。
预期结果:
#
答案 0 :(得分:2)
好像你只想按多个键排序:
$ sort -t# -k1,1 -k2 file
./1#1#d41d8cd98f00b204e9800998ecf8427e
./1#2#d41d8cd98f00b204e9800998ecf8427e
./11.txt#2#d41d8cd98f00b204e9800998ecf8427e
./12/1#1#d41d8cd98f00b204e9800998ecf8427e
./12/1#2#d41d8cd98f00b204e9800998ecf8427e
./12/1.txt#1#d41d8cd98f00b204e9800998ecf8427e
./12/1.txt#2#d41d8cd98f00b204e9800998ecf8427e
./12/2.txt#1#d41d8cd98f00b204e9800998ecf8427e
./12/2.txt#2#d41d8cd98f00b204e9800998ecf8427e
./13#2#d41d8cd98f00b204e9800998ecf8427e
./2.txt#1#5d74727d50368c4741d76989586d91de
./2.txt#2#5d74727d50368c4741d76989586d91de
-k1,1
表示只按第一个字段排序,然后 -k2
表示从其他字段排序,从第二个字段开始。 -t#
表示字段由#
分隔。