sort 命令如何忽略第一行?因为有些命令第一行是标题行

2019-10-24 18:23:29 +08:00
 lxk11153
6309 次点击
所在节点    Linux
9 条回复
Phant0m
2019-10-24 19:33:05 +08:00
```
awk '{if (NR>1){print $0}}' file | sort
```
lxk11153
2019-10-24 19:41:29 +08:00
@Phant0m #1 第一行直接不输出了 666 也算一种解决方法吧
5long
2019-10-24 20:24:26 +08:00
可以看下原命令的 manpage, 如果支持不输出标题行就最好。

再就是还可以用 ``tail -n +2'' 来实现跳过第一行
reus
2019-10-25 17:45:18 +08:00
xxx | tail -n +2 | sort
cmingxu
2019-11-12 17:54:52 +08:00
我都是 -k 选项
lxk11153
2019-11-12 18:49:13 +08:00
@cmingxu #5 那是啥?
cmingxu
2019-11-12 19:09:46 +08:00
@lxk11153 忽略我, 审题不严
goodlucky37
2019-11-25 19:22:16 +08:00
这个我想到的方法时可以通过 awk 的"if-else"或条件语句实现:
command | awk 'NR==1 {print $0};NR!=1 {print $0 | "sort xxx"}'
eg:
ps -fxo user,ppid,pid,pgid,command | awk 'NR==1 {print $0};NR!=1 {print $0 | "sort -k4,4nr"}'
flasktender
2019-11-28 16:27:08 +08:00
使用 sed 可以删除指定的行

sed '1d'

上面这个命令就是把输入的第一行删掉,效果一样。

例如你原本的命令是

cat file.txt | sort

那么可以把变量通过管道传递给 sed , 把第一行删掉后,再传给 sort

变成
cat file.txt | sed '1d' | sort

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/612650

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX