1

次の出力を取得するタスクがあります。

ps auxfwww | sort -k2n | head -n4

次に、結果として行 2、3、4 の 1、3、11 番目の列が得られるように、awk を使用して再配置する必要があります。ただし、行は 3、4、2 の順序である必要があります。私が得る最も近いものはこれです:

ps auxfwww | sort -k2n | head -n4 | awk 'NR>=3' | awk '{print $1, $3, $11}'

しかし、行 2 を行 3 と行 4 の後に取得する方法がわかりません。

また、単一行コマンドで実行する必要があります。

いくつかの光を当ててください:)

4

2 に答える 2

2
ps auxfwww | sort -k2n | head -n4 | awk '{ a[i++] = $1" "$3" "$11 } END { print a[2]; print a[3]; print a[1] }'

これにより、行 3、行 4、続いて行 2 が出力されます。

于 2013-10-06T14:19:15.260 に答える
0
ps auxfwww | sort -k2n | awk 'NR<5{a[NR]=$1" "$3" "$11} END{print a[3] ORS a[4] ORS a[2]}'
于 2013-10-07T01:59:18.993 に答える