我需要在HP-UX上对查找的输出进行排序。我得到了以下结果:
/path/to/folder/one/blabla_110303121212.x
/path/to/folder/two/otherblabla_1102124302.x
etc.
使用sort -t“\”-k5,我设法从最后一个/中排序,但现在我希望能够从数字套装上的最后一个下划线进行排序。 -t不能带两个分隔符(唉),-n不起作用(不知道为什么),我不能给出一个确切的数字来告诉-k第二个参数,其中键开始,因为大小“ blabla“永远不会是一样的,我需要保持那些(当然令人讨厌的)路径。
有没有人有任何想法?提前谢谢!
答案 0 :(得分:1)
sort(1)
通常是稳定的,这意味着如果元素具有相同的排序键,它将不会干扰元素的顺序。
所以解决方案是多次对输出进行排序;从下划线后的部分开始,然后对名称进行排序。
另一个解决方案是将文件剪切成列,更改列的顺序,对此中间文件进行排序,然后将列连接回原始表单。
使用awk(1)
,您可以创建
blabla_ 110303121212.x /path/to/folder/one/
otherblabla_ 1102124302.x /path/to/folder/two/
这可以在没有任何选项的情况下排序;只需在前缀和后缀之间添加足够的空格,并将后缀与右侧对齐。