remplir une colonne vide par la colonne n-1 avec awk

remplir une colonne vide par la colonne n-1 avec awk - C - Programmation

Marsh Posté le 05-11-2014 à 16:45:32    

Bonjour, j'ai un fichier taxinomique qui, en théorie, compte 7 colonnes :  
ex :
A1;Bacteria;Firmicutes;Bacilli;Lactobacillales;Streptococcaceae;Streptococcus;
 
La dernière colonne n'est pas toujours remplie : quand c'est le cas, je souhaite donc la remplir avec "valeur_6eme_colonne_unknown"
 
J'ai écris ça :
 
awk 'BEGIN {FS=";"} $7 !~ /^$/ {print $1;$2;$3;$4;$5;$6;$6_unknown}  END {} ' silva.nr_v119.tax > silva.nr_v119_c2c3.tax  
 
En sortie j'ai mon fichier contenant exactement les mêmes données qu'avant..
 
I need some help please  !
Thanks in advance,
 
vschill

Reply

Marsh Posté le 05-11-2014 à 16:45:32   

Reply

Marsh Posté le 05-11-2014 à 18:12:02    

Normalement, vu le code, le fichier de sortie doit "filtrer" les lignes avec la colonne 7 vide et en plus "virer" la colonne 7 (je ne sais pas ce que donne $6_unknown comme variable).
 
Perso, j'aurais plutôt fait qqchose du style :

Code :
  1. {
  2.   if(($7~/^[[:space:]]*$/)) {
  3.     print $1 ";" $2 ";" $3 ";" $4 ";" $5 ";" $6 ";" $6 "_unkown"
  4.   }
  5.   else {
  6.     print $0
  7.   }
  8. }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed