Intercambiar dos columnas: awk, sed, python, perl

Tengo datos en un archivo grande (¡280 columnas de ancho, 7 millones de líneas!) Y necesito intercambiar las dos primeras columnas. Creo que podría hacer esto con algún tipo de awk for loop, para imprimir $ 2, $ 1, luego un rango hasta el final del archivo, pero no sé cómo hacer la parte del rango, y no puedo imprimir $ 2 , $ 1, $ 3 ... $ 280! La mayoría de las respuestas de intercambio de columnas que he visto aquí son específicas para archivos pequeños con un número manejable de columnas, así que necesito algo que no dependa de especificar cada número de columna.

El archivo está delimitado por tabuladores:

Affy-id chr 0 pos NA06984 NA06985 NA06986 NA06989