donné un fichier texte délimité par des onglets avec deux colonnes « nom » et « date »:partitionné Total courant dans un fichier texte
Sam 20100101
Sam 20100101
Sam 20100102
George 20100101
George 20100101
George 20100102
Puis-je utiliser awk pour ajouter la troisième colonne avec un total de fonctionnement cloisonné, comme début d'un compteur à 0 pour chaque motif distinct de la colonne un et deux, puis incrémentation pour toute répétition du motif?
Sam 20100101 1
Sam 20100101 2
Sam 20100102 1
George 20100101 1
George 20100101 2
George 20100102 1
Je le fais dans SQL: select row_number() sur (partition par la colonne 1, la deuxième colonne ordre par colonne 10) de la table
mais je besoin d'une alternative - pas nécessairement awk, mais cela est venu à l'esprit - pour les fichiers texte non traités par SQL. Les fichiers texte sont ~ 50 Go chacun avec environ 200 mil lignes. J'utilise le compteur pour supprimer les lignes en double. Je suis conscient que donné mon exemple ci-dessus, cela peut être fait avec:
trier monfichier.txt | mais mes fichiers texte ont des colonnes supplémentaires non incluses dans mon exemple (par souci de brièveté) qui peuvent ne pas produire une ligne entièrement dupliquée.
Dois-je ajouter un paramètre pour correspondre uniquement les colonnes de nom et la date dans le
sorte myfile.txt | uniq -u
commande? Awk? Autre chose?
Merci pour votre aide! Toutes les lignes n'ont pas le même formatage. Puis-je passer le ++ a [$ 0] à quelque chose qui ne correspondra que sur les deux premières colonnes? ++ a [$ 1 $ 2]? –
@M. Roessler Oui, cela fonctionnera bien. – schot