2行に表示されるテキストに対してgrepをどのように実行しますか?
例えば:
pbsnodes Linuxクラスタの使用率を返すコマンドです
root$ pbsnodes
node1
    state = free
    procs = 2
    bar = foobar
node2
    state = free
    procs = 4
    bar = foobar
node3
    state = busy
    procs = 8
    bar = foobar「フリー」状態のノードに一致するprocの数を判別したい。これまで「procの数」と「フリー状態のノード」を特定できましたが、それらをすべてのフリーprocを表示する1つのコマンドに結合したいと思います。
上記の例では、正解は6(2 + 4)になります。
私が持っているもの
root$ NUMBEROFNODES=`pbsnodes|grep 'state = free'|wc -l`
root$ echo $NUMBEROFNODES
2
root$ NUMBEROFPROCS=`pbsnodes |grep "procs = "|awk  '{ print $3 }' | awk '{ sum+=$1 } END { print sum }'`
root$ echo $NUMBEROFPROCS
14「procs = x」と表示されるすべての行を検索するにはどうすればよいですか?ただし、その上の行が「state = free」と表示される場合のみですか?
awkパターンマッチングを行います。必要ありませんgrep:ステファンの答えを