Bases de Linux et de la ligne de commande

$ cat words.txt
bat
bt
boat
abet
bit.txt
$ grep '^b.t' words.txt

Dans la session ci-dessus, quelles lignes affiche le dernier grep ?

  1. Abat, bit.txt
  2. Bbat, abet, bit.txt
  3. Cbat, bt, boat, bit.txt
Afficher la réponse et l'explication

Réponse : A. bat, bit.txt

Dans une expression régulière, ^ désigne le début de la ligne, . un caractère quelconque et $ la fin de la ligne. ^b.t signifie « b en début de ligne, puis un caractère quelconque, puis t » : l'expression correspond donc à bat et à bit.txt. bt n'a aucun caractère entre b et t, et dans boat, le caractère situé deux positions après b est a : ils ne correspondent pas. Dans abet, la partie bet correspond à b.t, mais la ligne commence par a, donc la condition ^ n'est pas remplie.

S'entraîner sur ce thème Retour au thème

Autres questions sur Bases de Linux et de la ligne de commande

  1. Les choix sont donnés sans les espaces en début de ligne. Dans la session ci-dessus, quelle ligne affiche le dernier enchaînement de commandes ?
  2. On veut afficher en continu à l'écran les lignes ajoutées par la suite au fichier journal du serveur /var/log/app.log, au fur et à mesure de leur ajout. Quelle commande convient ?
  3. Quelle est la sortie de la commande ci-dessus, qui extrait des colonnes d'une ligne dont les champs sont séparés par des virgules ?
  4. Quelle est la sortie de la commande sed ci-dessus, qui remplace des caractères ?
  5. Dans la session ci-dessus, qu'affiche le dernier awk ?