使用awk在第四行之后移动第二行

时间:2013-10-06 13:51:20

标签: awk

我有一个任务来获得输出:

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行。

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

请说清楚:)

2 个答案:

答案 0 :(得分: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行。

答案 1 :(得分:0)

ps auxfwww | sort -k2n | awk 'NR<5{a[NR]=$1" "$3" "$11} END{print a[3] ORS a[4] ORS a[2]}'