GNU/Linux >> Tutoriels Linux >  >> Linux

Comment imprimer des lignes dupliquées dans un fichier texte sous Linux

Une fois que vous entrez dans le domaine du système d'exploitation Linux, la liste des possibilités informatiques via l'environnement de ligne de commande Linux semblera interminable. C'est simplement parce que plus vous utilisez Linux, plus vous voulez apprendre et cette envie vous amène à travers d'innombrables opportunités d'apprentissage.

Dans ce didacticiel, nous allons examiner le comptage et l'impression de lignes en double dans un fichier texte sous un environnement de système d'exploitation Linux. Ce module de tutoriel fait partie de la gestion de fichiers Linux.

La ligne de commande Linux ou l'environnement de terminal n'est pas nouveau dans le traitement des fichiers texte d'entrée. Il est si compétent dans de telles opérations qu'il n'a pas encore rencontré de défi digne de ce nom dans le cadre du traitement de fichiers texte.

Ce didacticiel apportera des éclaircissements sur l'identification/la gestion des lignes en double dans des fichiers texte aléatoires sous Linux.

Énoncé du problème

Pour rendre ce didacticiel plus facile et plus intéressant, nous allons créer un exemple de fichier texte qui agira comme le fichier aléatoire dont nous voulons vérifier l'existence de lignes en double.

$ sudo nano sample_file.txt 

En parcourant simplement la capture d'écran du fichier texte ci-dessus, nous devrions être en mesure de noter l'existence de certaines lignes en double, mais nous ne pouvons pas être certains de leur nombre exact d'occurrences.

Pour être certain du nombre de lignes en double qui se produisent, nous trouverons nos solutions à partir des approches Linux suivantes basées sur la ligne de commande/le terminal :

Rechercher les lignes dupliquées dans le fichier à l'aide des commandes sort et uniq

La commodité d'utiliser uniq commande est qu'elle vient avec -c possibilité de commande. Cependant, cette option de commande n'est valide que si le fichier texte que vous ciblez/analysez comporte des lignes adjacentes en double.

Pour éviter ce désagrément lors de l'utilisation de uniq commande pour imprimer les lignes dupliquées, nous devons emprunter l'approche de la commande de tri consistant à regrouper les lignes répétées/dupliquées dans un fichier texte ciblé.

Bref, on va d'abord passer le fichier texte ciblé via le tri commande et ensuite dirigez-la vers le uniq commande qui sera alors accompagnée du -c option de commande comme illustré ci-dessous :

$ sort sample_file.txt | uniq -c 

La première colonne (à gauche) de la sortie ci-dessus indique le nombre de fois que les lignes imprimées dans la colonne de droite apparaissent dans le sample_file.txt fichier texte. Par exemple, la phrase "J'aime Linux" est dupliqué/répété (3+3+1) fois dans le fichier texte totalisant 7 fois.

Imprimer les lignes dupliquées dans le fichier à l'aide de la commande Awk

Le maladroit commande pour résoudre ce "imprimer les lignes dupliquées dans un fichier texte ” Le problème est un simple one-liner. Pour comprendre comment cela fonctionne, nous devons d'abord l'implémenter comme illustré ci-dessous :

$ awk '{ a[$0]++ } END{ for(x in a) print a[x], x }' sample_file.txt 

L'exécution de la commande ci-dessus génère deux colonnes, la première colonne compte le nombre de fois qu'une ligne répétée/dupliquée apparaît dans le fichier texte, et la deuxième colonne pointe vers la ligne en question.

Cependant, la sortie de la commande ci-dessus n'est pas aussi organisée que celle sous sort et unique commandes.

Nous avons couvert avec succès comment imprimer des lignes dupliquées dans un fichier texte sous un environnement de système d'exploitation Linux.


Linux
  1. Comment ajouter du texte à la fin du fichier sous Linux

  2. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  3. Comment afficher des lignes spécifiques d'un fichier dans la ligne de commande Linux

  4. Commande wc Linux

  5. Comment éditer un fichier texte dans mon terminal

Comment ouvrir un fichier sous Linux

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment mélanger les lignes dans un fichier sous Linux

Comment inverser les lignes d'un fichier par caractère sous Linux

Comment utiliser la commande lsof sous Linux

Comment utiliser la commande shred Linux