1

我的任务是获得以下输出:

ps auxfwww | sort -k2n | head -n4

然后我必须使用 awk 重新排列它,以便得到第 2、3、4 行的第 1、3、11 列。但行必须按 3、4、2 的顺序排列。我得到的最接近的是:

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

但我不知道如何在第 3 行和第 4 行之后获得第 2 行。

它还必须使用单行命令来完成。

请阐明一些光:)

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 回答