• 締切済み

sed や owk を使ってデータ整形して実行したい。

#netstat -np の実行結果が以下だとして、 unix 3 [ ] STREAM CONNECTED 144244439 111/httpd unix 4 [ ] STREAM CONNECTED 144244388 222/httpd unix 4 [ ] STREAM CONNECTED 144244321 333/httpd unix 3 [ ] STREAM CONNECTED 144244294 444/httpd unix 3 [ ] STREAM CONNECTED 144244096 555/httpd これを sed やowk を使って以下のように出力して実行したいです。。 kill 111 222 333 444 555 shでこれを実現したいのですが、以下の記述で、 #!/bin/bash A=`netstat -np |grep unix | gawk '{ print $8 }'` 以下のような結果は得られました。 111/httpd 222/httpd 333/httpd 444/httpd 555/httpd しかしこれ以降をどうすれば、以下のように整形して実行できるでしょうか。 kill 111 222 333 444 555

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

xargs を知るとちょっと幸せになれるかも. netstat -np | grep unix | sed -e 's/.* \([0-9]*\)\/httpd$/\1/' | xargs kill とか.

tanpopo012
質問者

お礼

kill 111/httpd ... となってしまいました。。

すると、全ての回答が全文表示されます。
  • x1va
  • ベストアンサー率26% (802/3006)
回答No.1

> 111/httpd 222/httpd 333/httpd 444/httpd 555/httpd この結果の文字列から/を区切り文字に指定してawkで再度整形すればいいでしょう。 ↓これを後ろに追加して下さい |gawk -F / '{ print $1 }'

tanpopo012
質問者

お礼

うまく切り出せました!ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A