Remplacer à partir de la deuxième colonne

Eh bien, j’ai le fichier suivant:

12721 2 2 2 1 1 2 1 2 1 1 1 2 2 1 1 2 1 2 1 1 2 12722 2 2 2 1 1 2 1 2 1 1 1 2 2 1 1 2 1 2 1 1 2 12734 2 2 2 1 1 2 1 2 1 1 1 2 2 1 1 2 1 2 1 1 2 12753 2 2 2 1 1 2 1 2 1 1 1 2 2 1 1 2 1 2 1 1 2 12756 2 2 2 1 1 2 1 2 1 1 1 2 2 1 1 2 1 2 1 1 2 

Je dois supprimer les espaces à partir de la deuxième colonne, pour que mon fichier ressemble à ceci:

 12721 222112121112211212112 12722 222112121112211212112 12734 222112121112211212112 12753 222112121112211212112 12756 222112121112211212112 

J’ai essayé cette commande pour remplacer:

 sed '1,$s/ //g' snpdata > snpdata1 

ça n’a pas marché et je l’ai eu:

 12721222112121112211212112 12722222112121112211212112 12734222112121112211212112 12753222112121112211212112 12756222112121112211212112 

des suggestions à remplacer à partir de la deuxième colonne?

Remarque: mon jeu de données d’origine comporte des milliers de colonnes et de lignes.

EDIT: Puisque l’OP a modifié la sortie attendue maintenant, le code a donc un peu modifié le code, cela devrait aider OP pour la dernière sortie attendue.

 awk '{val=$1;$1="";gsub(/[[:space:]]+/,"");print val,$0}' Input_file 

Après awk peut vous aider ici.

 awk '{val=substr($0,5);gsub(/ +/,"",val);print substr($0,1,4), val;val=""}' Input_file 

Utiliser sed:

  sed 's/ //g;s/\([0-9]\{5\}\)\([0-9]\+\)/\1 \2/' file 

où la première commande supprime tous les espaces et la deuxième commande groupe les chiffres

Cela pourrait fonctionner pour vous (GNU sed):

 sed 's/\([^ ]\) */\1\n/1;s/ //g;s/\n/ /' file 

Remplacez le premier ensemble d’espaces après une colonne par une nouvelle ligne. Supprimez tous les autres espaces. Remplacez la nouvelle ligne par un espace.