unix skip-header bash函数

dfr*_*kow 3 bash

在stackoverflow的某个地方,我得到了一个名为"body"的bash函数,它将回显文件的标题(第一行),并将正文(其余行)传递给stdout.这对我来说非常有用,可以处理带有标题的文件.

例:

FILE.CSV:

field1,field2
a,2
b,1
Run Code Online (Sandbox Code Playgroud)

命令:

$ sort -k2,2 -nr file.csv -t,
a,2
b,1
field1,field2

$ cat file.csv | body sort -nr -t, -k2,2
field1,field2
a,2
b,1
Run Code Online (Sandbox Code Playgroud)

不是一个很好的例子,但它显示标题保持在最顶层.

谷歌搜索和搜索stackoverflow的分钟没有透露任何结果.

任何人都可以找到或重建这样的功能吗?

sum*_*mea 6

这是一种允许你抓住标题的方法......然后抓住csv文件的其余部分,然后排序(或者你想对数据做什么),这一切都被保存到了outpipe.

head -1 file.csv > outpipe | tail -n+2 file.csv | sort >> outpipe
Run Code Online (Sandbox Code Playgroud)

编辑:

如果这种方法对你不起作用,你总是可以尝试类似前面讨论中的答案.

  • 也许[类似这个问题](http://unix.stackexchange.com/questions/11856/sort-but-keep-header-line-in-the-at-the-top)可以指出你正确的方向,如果你不想在这里使用`tail`. (2认同)