-1
votes

Script à somme des colonnes dans plusieurs fichiers

Sector A    300
Sector B    600
Sector C    900
Sector D    1500

2 commentaires

Qu'avez-vous essayé? PS: Peut-être que vous vouliez dire "secteur D 1500"


Si l'une des réponses ici résolvait votre question, veuillez accepter cette réponse. Accepter une réponse close ces questions et récompense l'auteur de la réponse acceptée. Si votre question n'était pas résolue, envisagez d'expliquer pourquoi.


5 Réponses :


2
votes

Pourriez-vous s'il vous plaît essayer de suivre.

Sector A 300
Sector B 600
Sector C 900
Sector D 1500


2 commentaires

Bonjour Ravinder,


Merci beaucoup de réponse. Je suis nouveau pour script, pourriez-vous donc écrire les étapes. Cela aidera à apprendre plus vite. De plus, j'ai plusieurs fichiers, puis-je utiliser une carte wild (*) à la fin de la commande



1
votes

En supposant que vos colonnes soient délimitées par des onglets, vous pouvez utiliser GNU DataMash: xxx

sortie xxx

si votre individu (éventuellement grand) Les fichiers d'entrée sont déjà triés, vous pouvez accélérer le processus à l'aide de Trier -m ... au lieu de Trier .


2 commentaires

Ajouter -w s'ils sont séparés par unespace arbitraire.


@Shawn Malheureusement, ce n'est pas si facile. Secteur A contient également une espace blanche. Si vous savez que la première colonne contient toujours exactement un espace (comme pour l'exemple d'entrée de OP), nous pouvons utiliser DataMash -W groupby 1,2 somme 3 . Si la première "colonne" peut être quelque chose, alors nous sommes perdus, mais c'est un problème général pas spécifique à DataMash .



0
votes

Pas la solution la plus intelligente mais assez simple et compréhensible: xxx


0 commentaires

0
votes

1 . trier assisté awk xxx

2. < Code> Coller assisté awk xxx


0 commentaires

0
votes

Utilisation de Perl,

$ perl -0777 -ne ' s/^(.+) (\d+)$/$kv{$1}+=$2/gme; END { for(sort keys %kv) { print "$_ $kv{$_}\n" }} ' filea.txt fileb.txt  filec.txt
Sector A    300
Sector B    600
Sector C    900
Sector D    1500
$


0 commentaires