【问题标题】:How to keep column headers when using grep?使用grep时如何保留列标题?
【发布时间】:2014-10-10 08:34:31
【问题描述】:

某些程序的输出以列名开头(例如,ps a):

$ ps a

  PID TTY      STAT   TIME COMMAND
 1306 tty1     Ss+    0:00 /sbin/mingetty /dev/tty1
 1318 hvc0     Ss+    0:00 /sbin/agetty hvc0 38400 vt100-nav
14696 pts/0    Ss     0:00 -bash
15283 pts/0    R+     0:00 ps a

现在,假设我想找到 agetty 的出现:

$ ps a | grep agetty

 1318 hvc0     Ss+    0:00 /sbin/agetty hvc0 38400 vt100-nav
15339 pts/0    S+     0:00 grep agetty

除非我看到ps a的输出开头,否则我不知道ps a | grep agetty的输出是什么意思。

我可以打印第一行,然后是匹配的行:

$ ps a | head -n1; ps a | grep agetty

  PID TTY      STAT   TIME COMMAND
 1318 hvc0     Ss+    0:00 /sbin/agetty hvc0 38400 vt100-nav
15542 pts/0    S+     0:00 grep agetty

但是,当我不知道有多少标题行时,这并不能解决我的问题。 有没有获取标题和匹配行的方法,或者一些简短的解决方法来实现这一点?

【问题讨论】:

    标签: terminal console grep output find-occurrences


    【解决方案1】:

    这会有帮助吗?

     ps ..|awk '/yourpattern/ ||!/^\s*[0-9]/'
    

    填写yourpattern

    您也可以使用ps ...|awk '/agett[y]/ ||.... 而不是/agetty/ 来过滤awk 进程自身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多