Como dobrar cada linha: veja aqui ...
Quanto ao seu segundo pedido, basta salvar o primeiro campo e toda a linha em variáveis, em seguida, fazer a primeira mudança, definir o primeiro campo para o valor inicial e imprimir, em seguida, restaurar o conteúdo da linha, fazer a segunda mudança, definir o primeiro campo novamente para o valor inicial e impressão:
awk '{t=$1;l=$0;gsub(/3/, "2");gsub(/4/, "1");$1=t;print}
{$0=l;gsub(/3/, "1");gsub(/4/, "2");$1=t;print}' infile