GNU/Linux >> Tutoriels Linux >  >> Linux

Comment mélanger les lignes dans un fichier sous Linux

Puisqu'il est déjà établi que le système d'exploitation Linux est le cric de tous les métiers informatiques à travers les nombreux conseils et articles sur la ligne de commande Linux que vous avez rencontrés sur ce site.

Il est temps de développer encore la réputation de ce système d'exploitation. Dans le cadre de la gestion de fichiers Linux, nous examinerons les moyens de mélanger les lignes dans un fichier résidant sous un environnement de système d'exploitation Linux.

Le brassage des lignes dans un fichier sur un environnement de système d'exploitation Linux peut suivre deux approches. Sous la première approche, vous pourriez chercher à mélanger/réorganiser les lignes dans un fichier ciblé pour qu'elles apparaissent dans un ordre spécifique requis. Dans ce cas, une commande de tri est appelée.

Sous l'approche 2, vous n'êtes pas conscient de l'ordre dans lequel les dernières lignes du fichier ciblé doivent apparaître. Dans de tels cas, une commande shuf est sollicité.

Cet article nous guidera à travers différentes techniques Linux de mélange aléatoire de lignes dans un fichier sous Linux.

Énoncé du problème

Nous devrons créer un exemple de fichier texte avec quelques lignes auxquelles nous ferons référence lors de la mise en œuvre et de l'exécution de diverses commandes de brassage Linux à discuter.

$ sudo nano sample_file.txt

Nous pouvons utiliser la commande cat pour la vue numérotée de tout ce fichier :

$ cat -n sample_file.txt

La commande chat la sortie nous indique que nous avons affaire à un fichier texte avec un total de 15 lignes. De plus, comme vous l'avez peut-être remarqué, les lignes 12 à 14 sont répétitifs. L'occurrence de ces trois lignes nous aidera à comprendre le fonctionnement des différentes commandes de mélange.

Mélange de lignes à l'aide de la commande Shuf sous Linux

Depuis GNU Coreutils le paquet héberge shuf commande, il doit être installé par défaut dans la distribution de votre système d'exploitation Linux. La fonction principale du shuf commande est de générer des permutations aléatoires basées sur une entrée qui lui est transmise.

Le mécanisme de fonctionnement du shuf la commande est la suivante ; il charge d'abord les données d'entrée en mémoire, indique si la mémoire libre est supérieure à la taille des données/fichiers d'entrée avant de procéder à son exécution.

Sa syntaxe est la suivante :

$ shuf [TARGET_INPUT_FILE] 

Dans notre cas, sa mise en œuvre sera la suivante :

$ shuf sample_file.txt

Comme vous pouvez le voir, nous avons réussi à mélanger les lignes de manière aléatoire dans notre exemple de fichier texte. Si vous exécutez le shuf commande, encore et encore, vous obtiendrez un résultat différent à chaque fois :

$ shuf random_file.txt 

Utiliser la commande Sort pour mélanger les lignes sous Linux

Alors que le tri est principalement utilisée pour réorganiser les lignes d'un fichier d'une manière spécifique, nous pouvons randomiser ces lignes de fichier si nous combinons le sort commande avec le -R option.

$ sort -R sample_file.txt 

Exécuter la commande encore et encore devrait produire des résultats différents à chaque fois.

Utilisez la commande Awk pour mélanger les lignes de fichiers sous Linux

Selon sa page de manuel Linux (man awk ), maladroit est un langage de programmation parfait pour la numérisation de motifs et le traitement de texte. Cependant, pour comprendre son utilisation dans le mélange de lignes, vous aurez besoin d'une certaine exposition aux concepts de programmation tels que les variables, les boucles (boucles while) et les instructions (instruction if), comme illustré ci-dessous :

awk 'BEGIN{srand() }
{ lines[++d]=$0 }
END{
    while (1){
    if (e==d) {break}
        RANDOM = int(1 + rand() * d)
        if ( RANDOM in lines  ){
            print lines[RANDOM]
            delete lines[RANDOM]
            ++e
        }
    }
}' sample_file.txt

Nous sommes maintenant à l'aise avec le brassage des lignes dans un fichier sous Linux.


Linux
  1. Commande de fichier Linux :comment déterminer le type de 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 compter le nombre de lignes dans un fichier sous Linux (exemples de commandes wc et nl)

Comment utiliser une commande de fichier sous Linux

Comment ouvrir un fichier sous Linux

Comment imprimer des lignes dupliquées dans un fichier texte 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