検索結果をヘッダ付きで表示

awkを使用する

  • awk ‘パターン { アクション }’ [ 入力ファイルのパス ]
  • /xxx/: 正規表現はスラッシュの間に入れる
  • NR: 行番号
  • ||: または
  • { print $0 }: その行を表示($0は省略可)
  • $1: 1列目を表示
[root@localhost ~]# ps -u | awk '{print $0}'
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         881  0.0  0.0   3044   256 tty1     Ss+  Aug12   0:00 /sbin/agetty -o -p -- \u --noclear - linux
root      139614  0.0  0.2  13180  6400 pts/0    S    Aug16   0:00 su - root
root      139618  0.0  0.1   5020  3968 pts/0    S    Aug16   0:00 -bash
root      224777  0.0  0.1   7616  3200 pts/0    R+   14:15   0:00 ps -u
root      224778  0.0  0.1   6528  3584 pts/0    S+   14:15   0:00 awk {print $0}

1行目がヘッダの場合

[root@localhost ~]# ps -u | awk 'NR==1 || /bash/ {print}'
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      139618  0.0  0.1   5020  3968 pts/0    S    Aug16   0:00 -bash
root      224590  0.0  0.1   6528  3584 pts/0    S+   14:08   0:00 awk NR==1 || /bash/ {print}

{ action } を省略すると、{ print $0 }と同じアクションとして実行する。

  • /xxx/: /xxx/ { print $0 } と同じ
[root@localhost ~]# ps -u | awk 'NR==1 || /bash/'
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      139618  0.0  0.1   5020  3968 pts/0    S    Aug16   0:00 -bash
root      224279  0.0  0.1   6528  3584 pts/0    S+   13:55   0:00 awk NR==1 || /bash/