9

我注意到tail +2在 Solaris ksh 中是支持的,但是在 Red Hat Linux 中,会出现错误:

c008>> ps -p 4009,6282,31401,31409 | tail +2
tail: cannot open `+2' for reading: No such file or directory

在 Solaris 中,

bjbldd>> ps -p 2622,16589,11719,846 |tail +2
16589 ??       0:00 xterm
  846 pts/180  0:00 cscope
11719 pts/180  0:00 cscope
2622 pts/114  0:00 apxcscop

的行PID TTY TIME CMD被“tail +2”排除。

我知道grep -v PID会奏效。但我想知道 Linux tail 是否有类似的选项?

4

2 回答 2

21

来自tail(1)

   -n, --lines=K
          output the last K lines, instead of the last 10; or
          use -n +K to output lines starting with the Kth

所以尝试-n +2--lines=+2

$ ps -p 20085 9530 29993 2069 2012 | tail -n +2
 2012 ?        Sl     0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
 2069 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session i3
 9530 ?        Sl     0:01 /usr/lib/udisks/udisks-daemon
20085 ?        S      0:00 /usr/sbin/apache2 -k start
29993 ?        S      0:00 [kworker/1:0]
$ 
于 2011-05-31T09:31:05.873 回答
1

我熟悉tail +2Solaris 上的语法,但它似乎不适用于 Ubuntu。

超级用户的这个答案似乎有效:

tail --lines=+100 <file> 

来源:https ://superuser.com/questions/62970/unix-cat-starting-from-line

于 2014-02-26T20:25:24.080 回答