この awk ワンライナーを試してください:
awk '{$3=$NF OFS $3;$NF=""}7' file
これは、最後の列を 3 列目に移動します。1000の場合、1000番目の列でそれを行います。
編集
ファイルがタブ区切りの場合は、次を試すことができます。
awk -F'\t' -v OFS="\t" '{$3=$NF OFS $3;$NF=""}7' file
EDIT2
例を追加します。
kent$ seq 20|paste -s -d'\t'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
kent$ seq 20|paste -s -d'\t'|awk -F'\t' -v OFS="\t" '{$3=$NF OFS $3;$NF=""}7'
1 2 20 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
EDIT3
入力例はありませんでした。元のファイルに空の列がないと仮定します。(連続マルチタブなし):
kent$ seq 20|paste -s -d'\t'|awk -F'\t' -v OFS="\t" '{$3=$10 FS $11 FS $3;$10=$11="";gsub(/\t+/,"\t")}7'
1 2 10 11 3 4 5 6 7 8 9 12 13 14 15 16 17 18 19 20
結局、これらのフィールドをループで出力できました。