[英]Unix, Sort by number
我想通過減少第二列的數量對文件進行排序,但不更改標題的位置。 當前,在csv文件中就像這樣,它具有兩列,如下所示:
Person Age
Sarah 15
Robert 23
Emma 31
Bob 9
我希望它是這樣的:
Person Age
Emma 31
Robert 23
Sarah 15
Bob 9
請幫助Unix初學者。
閱讀http://man7.org/linux/man-pages/man1/sort.1.html,以了解UNIX / Linux上的sort
命令。 這就是我和其他所有人所學到的。
$ sort --key 2 --reverse --numeric-sort myfile > mysortedfile
唯一的問題是,這會將“ Person Age”(行人年齡)的行排序為數字值零,然后將其移動到文件的最后一行。 然后,您必須在對文件進行排序后移動該行。
除了刪除空行,這將達到目的。
sed -n'1! p'sortme.txt | sort --key 2 --reverse --numeric-sort | sed'1 i \\ Person \\ tAge'> sorted.txt
〜帕特
要解決Bills答案中概述的“最前面的標題”問題,除了sort
之外,還可以使用awk
:
awk 'NR==1 {print ; next } { print | "sort -n -r -k2" }' yourfile > sorted_file
NR==1
僅適用於第一行:打印 sort
命令(您可以在awk
本身中進行排序,但這會更長一些)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.