0

LOG_FILENAMEログ ファイルの名前を格納する bash 変数があります。私がやりたいことはiostat -xnmp、 bash variable に格納されているすべての反復一致パターンのすべてのレコードのフィールド 9、10、および 11 を起動して取得することですDEVICE。反復回数はtimebash var に格納されます。私がやろうとしていたことは次のとおりです。

iostat -xnmp 5 $time | awk -v log=$LOG_FILENAME "/$DEVICE/" '{print $9" "$10" "$11}' input >> $log

と他の多くのバリエーションENVIRON...しかし、どこが間違っているのかまだわかりませんでした。ほとんどの場合、構文エラーが発生します。まだ特定の要件はありませんので、どのソリューションも適しています。

4

2 に答える 2

0

My take on this (one liners are okay but it is easier to humans to read as separate lines):

iostat -xnmp  $time | 
awk -v dev=$DEVICE  'index($0,dev)>0 {print $9,$10,$11}' >> $log

you read from stdin. index($0,dev)>0 was used because I think you have one disk device in mind. index($0,dev)>0 can be shortened to index($0,dev) with less clarity for folks learning awk.

于 2013-04-01T11:48:12.660 に答える