GNU/Linux >> Tutoriels Linux >  >> Linux

Problèmes d'utilisation du tri et de la communication

Selon le comm manuel, "Avant que `comm' puisse être utilisé, les fichiers d'entrée doivent être triés en utilisant la séquence de classement spécifiée par la locale `LC_COLLATE'."

Et le sort manual :"Sauf indication contraire, toutes les comparaisons utilisent la séquence de classement de caractères spécifiée par la locale `LC_COLLATE'.

Par conséquent, et un test rapide le confirme, le LC_COLLATE commander comm attend est fourni par le sort l'ordre par défaut de, tri par dictionnaire.

sort peut trier les fichiers de différentes manières :

  • -d  :Ordre du dictionnaire - ignore tout sauf les espaces et les caractères alphanumériques.
  • -g  : numérique général – alphanumérique, puis nombres négatifs, puis positifs.
  • -h :lisible par l'homme - négatif, alpha, positif. n < nk = nK < nM < nG
  • -n :Numérique - négatif, alpha, positif. k ,M ,G , etc. ne sont pas spéciaux.
  • -V :Version - positif, majuscules, inférieur, négatif. 1 < 1.2 < 1.10
  • -f  :Insensible à la casse.
  • -R  : Aléatoire - mélanger l'entrée.
  • -r :Inverse - généralement utilisé avec l'un des dghnV

Il existe d'autres options, bien sûr, mais ce sont celles que vous verrez ou dont vous aurez probablement besoin.

Votre test montre que l'ordre de tri par défaut est probablement -d , ordre du dictionnaire.

  d   |   g   |   h   |   n   |   V 
------+-------+-------+-------+-------
  1   |  a    | -1G   | -10   |  1
 -1   |  A    | -1k   | -5    |  1G
  10  |  z    | -10   | -1    |  1g
 -10  |  Z    | -5    | -1g   |  1k
  1.10| -10   | -1    | -1G   |  1.2
  1.2 | -5    | -1g   | -1k   |  1.10
  1g  | -1    |  a    |  a    |  5
  1G  | -1g   |  A    |  A    |  10
 -1g  | -1G   |  z    |  z    |  A
 -1G  | -1k   |  Z    |  Z    |  Z
  1k  |  1    |  1    |  1    |  a
 -1k  |  1g   |  1g   |  1g   |  z
  5   |  1G   |  1.10 |  1G   | -1
 -5   |  1k   |  1.2  |  1k   | -1G
  a   |  1.10 |  5    |  1.10 | -1g
  A   |  1.2  |  10   |  1.2  | -1k
  z   |  5    |  1k   |  5    | -5
  Z   |  10   |  1G   |  10   | -10

Linux
  1. Utiliser Uniq sur le texte Unicode ?

  2. Utiliser "sed" pour rechercher et remplacer ?

  3. Division de base utilisant une variable et un entier ?

  4. Sauvegarder et restaurer la base de données MySQL à l'aide de mysqlhotcopy

  5. Utiliser et dans la boucle while de Bash

Obtenez podman opérationnel sur Windows en utilisant Linux

Comment synchroniser des fichiers et des répertoires à l'aide de Zaloha.sh

Comment zoomer et dézoomer des vidéos à l'aide de FFmpeg

Comment utiliser la commande DD et comment graver ISO en l'utilisant

Utilisation de Bash Sort pour trier les fichiers comme un patron

Problèmes de serveur courants et solutions