awkを覚えることで一気にlinuxサーバと仲良くなれる(気がする)。
# ps auwwx |grep [h]ttpd |grep -v rotatelogs | awk '{ print $3}' 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 print $3は左から数えて3番目(カラム)を取得する意味。1行目なら$1。 # ps auwwx |grep [h]ttpd |grep -v rotatelogs apache 2646 0.0 1.4 249316 14884 ? S May22 0:13 /usr/sbin/httpd apache 2771 0.0 1.6 250584 16512 ? S May17 0:22 /usr/sbin/httpd apache 3706 0.0 1.4 249308 15300 ? S May22 0:12 /usr/sbin/httpd root 12445 0.0 1.4 245292 14300 ? Ss Mar21 5:12 /usr/sbin/httpd apache 28065 0.0 1.4 247768 14468 ? S May12 0:49 /usr/sbin/httpd apache 28066 0.0 1.5 249528 16228 ? S May12 0:52 /usr/sbin/httpd apache 28067 0.0 1.4 248272 14864 ? S May12 0:51 /usr/sbin/httpd apache 28068 0.0 1.6 250812 17320 ? S May12 0:50 /usr/sbin/httpd apache 28070 0.0 1.4 249268 15160 ? S May12 0:50 /usr/sbin/httpd apache 28071 0.0 1.5 249284 15760 ? S May12 0:51 /usr/sbin/httpd apache 28072 0.0 1.6 250592 16928 ? S May12 0:49 /usr/sbin/httpd apache 28074 0.0 1.4 247784 14380 ? S May12 0:50 /usr/sbin/httpd apache 28622 0.0 1.8 252472 18964 ? S May12 0:50 /usr/sbin/httpd apache 28647 0.0 1.8 252500 19084 ? S May12 0:53 /usr/sbin/httpd apache 28685 0.0 1.8 251812 18376 ? S May12 0:46 /usr/sbin/httpd 見事に3カラム目だけ取得出来ている。
行数を指定する †# ps auwwx |grep [h]ttpd |grep -v rotatelogs | awk 'NR==3' 上記の様な使い方だとあまり意味ないが、2行目だけ、3行目だけ欲しい、という時は、
awk 'NR==2'としてあげたらOK。 |