我希望通过减少第二列的数量来对文件进行排序,但不会更改标题的位置。目前在csv文件中就像这样有两列如下:
Person Age
Sarah 15
Robert 23
Emma 31
Bob 9
我希望它是这样的:
Person Age
Emma 31
Robert 23
Sarah 15
Bob 9
请帮助Unix中的初学者。
答案 0 :(得分:1)
阅读http://man7.org/linux/man-pages/man1/sort.1.html以了解UNIX / Linux上的sort
命令。那就是我和其他人的学习方式。
$ sort --key 2 --reverse --numeric-sort myfile > mysortedfile
唯一的问题是,这个排序与"人的年龄"好像它的数值为零,并将其移动到文件的最后一行。然后,您必须在排序文件后移动该行。
答案 1 :(得分:0)
除了删除空行外,这将解决问题。
sed -n'1! p'saltme.txt | sort --key 2 --reverse --numeric-sort | sed'1 i \ Person \ tAge'> sorted.txt
〜专利
答案 2 :(得分:0)
要解决票据答案中列出的“前方标题”问题,除了awk
之外,您还可以使用sort
:
awk 'NR==1 {print ; next } { print | "sort -n -r -k2" }' yourfile > sorted_file
NR==1
仅适用于第一行:打印sort
命令(您可以在awk
本身进行排序,但这会更长一些)