GNU/Linux >> Tutoriels Linux >  >> Linux

Est-ce que Grep –color Default To =auto Ou =always ?

Quel est le comportement de couleur par défaut pour grep --color si non [=QUAND ] est spécifié ?

La page de manuel de grep indique :

--color [=QUAND ], --color [=QUAND ]

    Entourez les chaînes correspondantes (non vides), les lignes correspondantes, les lignes de contexte,
    les noms de fichier, les numéros de ligne, les décalages d'octets et les séparateurs (pour les champs et
    les groupes de lignes de contexte) avec des séquences d'échappement pour les afficher en couleur
    sur le terminal.
    … 
    QUAND est never , always , ou auto .

Est-ce que la valeur par défaut [=WHEN ] pour grep --color devenir :

grep --color=auto

ou

grep --color=always

ou cela dépend-il de la mise en œuvre et de la plate-forme ?

Dans mes tests sur Ubuntu 14.04 avec GNU grep 2.16 :

echo "foo bar" | grep --color foo

résultats dans foo bar , tandis que

echo "foo bar" | grep --color foo | grep --color bar

résultats dans foo bar , il semble donc que grep --color=auto est en vigueur ici. Je n'ai cependant pas testé cela sur Windows ou Mac; Je ne sais pas si ce comportement est universel.

Cette valeur par défaut pour [=WHEN ] est un peu différent de ls --color où la page de manuel pour ls indique :

--color [=QUAND ]

    colorie la sortie.
    QUAND par défaut, always ou peut être never ou auto .

Ici, le comportement du WHEN manquant est explicite.

Réponse acceptée :

Il est par défaut sur auto .

grep --color revient à écrire --color=auto .

Cela semble être mal documenté, ou ils considèrent le simple --color obsolète, mais cela se voit à la fois dans les tests et dans son code source :

  case COLOR_OPTION:
    if (optarg)
      {
        if (!strcasecmp (optarg, "always") || !strcasecmp (optarg, "yes")
            || !strcasecmp (optarg, "force"))
          color_option = 1;
        else if (!strcasecmp (optarg, "never") || !strcasecmp (optarg, "no")
                 || !strcasecmp (optarg, "none"))
          color_option = 0;
        else if (!strcasecmp (optarg, "auto") || !strcasecmp (optarg, "tty")
                 || !strcasecmp (optarg, "if-tty"))
          color_option = 2;
        else
          show_help = 1;
      }
    else
      color_option = 2;
    break;

Notez que l'absence d'un optarg donne le même résultat car il est égal à auto ou tty .


Linux
  1. Que fait "lc_all=c" ?

  2. Comment Greper les lignes qui ne commencent pas par "#" ou ";" ?

  3. Comment puis-je grep récursivement?

  4. Ajouter une ligne à un fichier uniquement s'il n'existe pas déjà

  5. Faire fonctionner la sauvegarde par défaut avec GRUB2... ?

Grep et queue -f ?

Chaîne Grep où la ligne suivante ne contient pas de chaîne ?

Qu'est-ce que la commande Grep sous Linux ? Pourquoi est-il utilisé et comment fonctionne-t-il ?

Que signifie \b dans un modèle grep ?

Pourquoi Debian et Ubuntu sont-ils par défaut au niveau d'exécution 2 ?

Que signifie -/filepath ACTION dans la configuration de rsyslog