Supprimer les valeurs des deux colonnes à l'aide de awk ou bash

J'ai plusieurs fichiers texte, comme indiqué ci-dessous. Je voudrais déduire les valeurs des colonnes 2 et 4 Et créer une nouvelle colonne pour la sortie.


co1 co2 co3 co4

r1 15.2 13.0 21.4
r2 23 15 15.7
r3 14 8 12


Résultat désiré


co1 co2 co3 co4 diff. 

r1 15.2 13.0 21.4 -6.2
r2 23 15 15.7 7.3
r3 14 8 12 2
Invité:

Christian

Confirmation de:

Remarque: vous pouvez mettre toutes les commandes. awk en une ligne, mais il est plus propre /plus plus transparent et plus facile à changer si nécessaire/.

Ce scénario
so.awk

:


NR==1{print $0, " diff.\n"}
NR>2{printf/"%s\t%5.1f\n", $0, $2-$4/}


Donne:


co1 co2 co3 co4 diff.

r1 15.2 13.0 21.4 -6.2
r2 23 15 15.7 7.3
r3 14 8 12 2.0


Considérer vos données dans le fichier
data.txt

, Effectuez cette commande:


awk -f so.awk data.txt


/Vous devrez peut-être configurer le formatage en fonction de vos besoins précis./

Christian

Confirmation de:

Cette seule ligne fonctionne:


awk 'NR == 1 { $5 = "diff." } NR >= 3 { $5 = $2 - $4 } 1' <input.txt[ $5="diff." 'begin="" -6.2="" 12="" 13.0="" 14="" 15="" 15.2="" 15.7="" 21.4="" 23="" 2[="" 7.3="" 8="" [code]awk="" [code]co1="" avez="" besoin:="" c'est="" ce="" cela="" champs="" co2="" co3="" co4="" code]="" des="" diff.="" diviser="" donne:="" dont="" les="" nr="" ofs="\t" onglets,="" par="" r1="" r2="" r3="" si="" souhaitez="" vous="" {="" }="">= 3 { $5 = $2 - $4 } 1' <input.txt[ <="" code]="" div="">
<div class="answer_text">
Le texte unique Taku Miyakava peut être simplifié si vous n'avez pas d'en-tête:


[code]awk '{ $5 = $2 - $4 } 1' input.txt &gt; inputdiff.txt


Ou avec la division des onglets:


awk 'BEGIN { OFS = "\t" } { $5 = $2 - $4 } 1' input.txt &gt; inputdiff.txt


</div>
</input.txt[></input.txt[>

Emmanuel

Confirmation de:

Le texte unique Taku Miyakava peut être simplifié si vous n'avez pas d'en-tête:


awk '{ $5 = $2 - $4 } 1' input.txt > inputdiff.txt


Ou avec la division des onglets:


awk 'BEGIN { OFS = "\t" } { $5 = $2 - $4 } 1' input.txt > inputdiff.txt

Pour répondre aux questions, connectez-vous ou registre