基于特定文件名对文本文件进行排序

huangapple go评论55阅读模式
英文:

sort text file based on specific filenames

问题

你可以使用sort命令以及-t-k选项来按照你的需求排序。在这种情况下,你可以使用以下命令:

sort -t'/' -k4,4n -k5,5n -k6,6n your_file.txt

这个命令将文件按照斜杠分隔的第四、五和六个字段来排序,这将按照你期望的方式对文件进行排序。请确保将your_file.txt替换为你的实际文件名。

英文:

I have a bit of a weird problem. I hve a text file which looks like so:

/path/to/dir/0/100_something.dat,0.6
/path/to/dir/0/101_something.dat,0.6
/path/to/dir/0/102_something.dat,0.6
/path/to/dir/1/100_something.dat,0.6
/path/to/dir/1/101_something.dat,0.6
/path/to/dir/1/102_something.dat,0.6
/path/to/dir/2/100_something.dat,0.6
/path/to/dir/2/101_something.dat,0.6
/path/to/dir/2/102_something.dat,0.6

and I would like to sort it so that it looks like so:

/path/to/dir/0/100_something.dat,0.6
/path/to/dir/1/100_something.dat,0.6
/path/to/dir/2/100_something.dat,0.6
/path/to/dir/0/101_something.dat,0.6
/path/to/dir/1/101_something.dat,0.6
/path/to/dir/2/101_something.dat,0.6
/path/to/dir/0/102_something.dat,0.6
/path/to/dir/1/102_something.dat,0.6
/path/to/dir/2/102_something.dat,0.6

How can I achieve this in bash please? I used to sorting numerically via sort -n but I am not sure how to sort the above case since the field seperator and the field are not exactly useful (at least straightaway)

答案1

得分: 1

如果路径元素数量恒定且每行的元素数量相同,则仅使用sort命令就可以完成此操作。

在您的示例中,每行包含6个由/分隔的路径元素(行以一个空元素开头)。

您似乎希望按元素6进行排序,然后按元素5进行次级排序,都是按数值排序。

所以:

sort -t/ -n -k6,6 -k5,5 inputfile

-k选项可以接受更多选项。请参阅man手册以获取详细信息。


如果路径元素的数量不是恒定的,您可能需要不同的解决方案。例如:https://stackoverflow.com/q/3832068/10971581

英文:

If the number of path elements is constant and each line has the same number of them, then sort alone can do this.

In your example, each line contains 6 path elements delimited by / (lines start with an empty element).

You seem to want to sort by element 6 and then sub-sort on element 5, both numerically.

So:

sort -t/ -n -k6,6 -k5,5 inputfile

The -k can take more options. See manpage for details.


If the number of path elements is not constant, you may need a different solution. For example: https://stackoverflow.com/q/3832068/10971581

huangapple
  • 本文由 发表于 2023年6月12日 23:56:05
  • 转载请务必保留本文链接:https://go.coder-hub.com/76458359.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定