Sector A 300 Sector B 600 Sector C 900 Sector D 1500
5 Réponses :
Pourriez-vous s'il vous plaît essayer de suivre.
Sector A 300 Sector B 600 Sector C 900 Sector D 1500
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
En supposant que vos colonnes soient délimitées par des onglets, vous pouvez utiliser GNU DataMash: sortie p> 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 ... code> au lieu de
Trier code>. P> P>
Ajouter -w code> s'ils sont séparés par unespace arbitraire.
@Shawn Malheureusement, ce n'est pas si facile. Secteur A CODE> 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 code>. Si la première "colonne" peut être quelque chose, alors nous sommes perdus, mais c'est un problème général pas i> spécifique à
DataMash code>.
Pas la solution la plus intelligente mais assez simple et compréhensible:
2. strong> < Code> Coller Code> assisté trier code> assisté
awk code>
awk code> p>
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 $
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.