#!/usr/bin/env gawk -f
BEGIN{
column_count=split(cols,column_numbers," ");
}
{
for(i=1; i<=column_count; i++)
if(column_numbers[i] < 0)
printf "%s", $(NF + 1 + column_numbers[i])
else
printf "%s", $column_numbers[i]
if(i <= column_count)
printf "%s", OFS
printf "%s", ORS