Comment puis-je ajouter une nouvelle colonne à un fichier avec des codes awk?
original.file
F1 F2 F3 ..F10
ajouter F11 au fichier d'origine.
F1 F2 F3 ..F10 F11
essayer:
awk 'BEGIN{getline to_add < "f3"}{print $0,to_add}' f
Lit la colonne à ajouter à partir du fichier "f3" et l'enregistre dans la variable to_add. Après cela, il ajoute la colonne à chaque ligne de fichier f.
HTH Chris
awk '{print $0, "F11"}' original.file
Si vous souhaitez ajouter une colonne à un fichier, vous pouvez procéder comme suit.
remarque: Nous supposons que le séparateur de champ FS
est égal à la chaîne "fs"
. Vous pouvez remplacer cela par n'importe quoi, ou si vous utilisez simplement <blanks> comme séparateur de champ, vous pouvez supprimer le BEGIN{FS=OFS="fs"}
participer à l'une des solutions suivantes.
ajoutez une colonne au début:
awk 'BEGIN{FS=OFS="fs"}{print value OFS $0}' file
ajoutez une colonne à la fin:
awk 'BEGIN{FS=OFS="fs"}{print $0 OFS value}' file
ajouter une colonne avant la colonne n
:
awk 'BEGIN{FS=OFS="fs"}{$n = value OFS $n}1' file
ajouter colonne après colonne n
:
awk 'BEGIN{FS=OFS="fs"}{$n = $n OFS value}1' file
ajoutez une colonne avant chacune des colonnes n1
<n2
<... <nm
: (commencez par l'arrière)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = value OFS $(a[i])}1' file
ou pour différentes valeurs
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = v[i] OFS $(a[i])}1' file
ajoutez une colonne après chacune des colonnes n1
<n2
<... <nm
: (commencez par l'arrière)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS value}1' file
ou pour différentes valeurs
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS v[i]}1' file