我想通过减少第二列的数量来排序文件,但不改变标题的位置。目前,它是这样在有两列这样一个CSV文件:Unix,按号码排序
Person Age
Sarah 15
Robert 23
Emma 31
Bob 9
我希望它是这样的:
Person Age
Emma 31
Robert 23
Sarah 15
Bob 9
请帮助在Unix的初学者。
我想通过减少第二列的数量来排序文件,但不改变标题的位置。目前,它是这样在有两列这样一个CSV文件:Unix,按号码排序
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
唯一的问题是,这个排序符合“个人时代”,好像有零的数值,并将其移动到文件的最后一行。排序文件后,您必须移动该行。
这将做的伎俩,除了删除空白行。
sed -n'1! p'sortme.txt | sort --key 2 --reverse --numeric-sort | SED '1 I \人\踏歌'> sorted.txt
〜帕特
为了解决问题 “在前端板” 所概括的法案回答,您可以在除了使用awk
到sort
:
awk 'NR==1 {print ; next } { print | "sort -n -r -k2" }' yourfile > sorted_file
NR==1
只对第一行适用:它在打印sort
命令(你可以做在01排序本身,但那会更长一些)
谢谢,他们来到前面,但他们没有在csv的不同单元格中分开。如何解决它? – reader
对不起,我不明白你的问题。 –
http://stackoverflow.com/questions/42877958/unix-separate-two-words-in-table我已经解释过了。 – reader