![根据固定位置处的可变宽度数字对行进行排序](https://linux22.com/image/33505/%E6%A0%B9%E6%8D%AE%E5%9B%BA%E5%AE%9A%E4%BD%8D%E7%BD%AE%E5%A4%84%E7%9A%84%E5%8F%AF%E5%8F%98%E5%AE%BD%E5%BA%A6%E6%95%B0%E5%AD%97%E5%AF%B9%E8%A1%8C%E8%BF%9B%E8%A1%8C%E6%8E%92%E5%BA%8F.png)
我正在尝试使用 Sort 命令对文件进行排序,但它不起作用:
该文件包含如下行:
photo1
photo11
photo12
photo13
photo17
photo18
photo19
photo2
photo22
photo23
photo25
photo26
photo27
我正在使用该命令,sort -k6 Photos
以便它在字符串“photo”之后开始排序,有人可以告诉我哪里出错了吗?
答案1
使用键的开始和结束字符位置定义排序键:
sort -nk1.6,1.8 file
查看您的友好sort
联机帮助页。
答案2
您必须指定字段分隔符。
sort -n -to -k3 Photos
-to
告诉sort
用作o
字段分隔符。数字位于第三个字段中(第一个字段包含ph
,第二个字段包含t
),因此我们使用-k3
。-n
告诉sort
按数字排序而不是按字母顺序排序。