Comment utiliser la commande rev sous Linux

La commande rev de Linux inverse les chaînes de texte. Cette commande peut fonctionner soit sur le texte fourni soit sur un fichier, et elle semble d’une simplicité trompeuse. Mais comme de nombreux utilitaires de ligne de commande, sa puissance réelle devient évidente lorsque vous le combinez avec d’autres commandes.

La commande rev est l’un de ces simples utilitaires Linux qui, à première vue, semble être quelque chose d’étrange. Il remplit une seule fonction: il inverse les chaînes. Et en plus de pouvoir imprimer une page d’aide rapide (-h) et de vous montrer son numéro de version (-V), il n’accepte aucun options de ligne de commande.

Alors, rev inverse les cordes, et c’est tout? Pas de variations ou d’options? Eh bien, oui et non. Oui, il n’y a pas de permutations, mais non, ce n’est guère tout. Ce tutoriel vous montre comment le combiner pour des opérations puissantes.

Lorsque vous utilisez rev comme élément de base dans des séquences de commandes plus compliquées, cela commence vraiment à montrer sa valeur. rev fait partie d’un groupe de commandes (comme tac et yes) qui sont des facilitateurs. Il est plus facile d’apprécier leur utilité lorsque vous voyez comment ils rendent l’utilisation d’autres commandes plus efficace.

Utilisation de la commande rev

Utilisé sur la ligne de commande sans autres paramètres, rev prend n’importe quelle entrée tapée, l’inverse, puis l’imprime dans la fenêtre du terminal. Il continue à le faire jusqu’à ce que vous appuyiez sur Ctrl + C pour quitter.

rev

Si vous tapez du texte et appuyez sur Entrée, rev imprime la chaîne à l’envers – à moins que vous ne lui fournissiez un palindrome, bien sûr.

  10 des générateurs Lorem Ipsum les plus uniques

Passer du texte à rev

Vous pouvez utiliser l’écho pour diriger le texte vers la rév.

echo one two three | rev

Vous pouvez également utiliser rev pour inverser le contenu d’un fichier de texte entier, ligne par ligne. Dans cet exemple, nous avons un fichier contenant une liste de noms de fichiers. Le fichier s’appelle «filelist.txt».

rev filelist.txt

Chaque ligne est lue à partir du fichier, inversée, puis imprimée dans la fenêtre du terminal.

Combinaison de rev avec d’autres commandes

Voici un exemple utilisant la tuyauterie d’entrée qui appelle rev deux fois.

Cette commande supprime le dernier caractère de la chaîne de texte. Cela peut être utile pour supprimer la ponctuation. Nous devons utiliser la commande cut pour dépouiller le personnage.

echo 'Remove punctuation.' | rev | cut -c 2- | rev

Décomposons cela.

echo envoie la chaîne dans le premier appel à rev.
rev inverse la corde et la transforme en coupe.
L’option -c (caractères) indique à cut de renvoyer une séquence de caractères à partir de la chaîne.
L’option 2 indique à cut de renvoyer la plage de caractères du caractère deux jusqu’à la fin de la ligne. Si un deuxième nombre était fourni, tel que 2-5, la plage serait de caractères deux à cinq. Aucun deuxième chiffre ne signifie «jusqu’à la fin de la chaîne».
La chaîne inversée – moins son premier caractère – est transmise à rev qui inverse la chaîne, de sorte qu’elle revient à son ordre d’origine.

Comme nous avons supprimé le premier caractère de la chaîne inversée, nous avons supprimé le dernier caractère de la chaîne d’origine. Oui, vous pouvez le faire avec sed ou awk, mais c’est une syntaxe plus simple.

Séparer le dernier mot

Nous pouvons utiliser une astuce similaire pour renvoyer le dernier mot de la ligne.

La commande est similaire à la dernière: encore une fois, elle utilise rev deux fois. Les différences résident dans la manière dont la commande Couper est utilisée pour sélectionner des parties du texte.

echo 'Separate the last word' | rev | cut -d' ' -f1 | rev

Voici la répartition des commandes:

  5 fonctions Excel de base qui facilitent infiniment le travail

echo envoie la chaîne dans le premier appel à rev.
rev inverse la corde et la transforme en coupe.
L’option -d  » (délimiteur) indique à cut de renvoyer une séquence de caractères délimités par un espace.
L’option -f1 indique à cut de retourner la première section de la chaîne ne contenant pas le délimiteur. En d’autres termes, la première partie de la phrase jusqu’au premier espace.
Le premier mot inversé est passé à rev qui inverse la chaîne, donc elle revient à son ordre d’origine.

Parce que nous avons extrait le premier mot de la chaîne inversée, nous avons coupé le dernier mot de la chaîne d’origine. Le dernier mot de la phrase était «mot», et il est imprimé pour nous.

Découpage du contenu des fichiers

Disons que nous avons un fichier contenant une liste de noms de fichiers, et les noms de fichiers sont entre guillemets. Nous voulons supprimer les guillemets des noms de fichiers.

Regardons le fichier:

less filelist.txt

Le contenu du fichier est affiché pour nous en moins.

Contenu de filenames.txt en moins dans une fenêtre de terminal.

Nous pouvons supprimer la ponctuation des deux extrémités de chaque ligne avec la commande suivante. Cette commande utilise à la fois rev et cut deux fois.

rev filelist.txt | cut -c 2- | rev | cut -c 2-

Les noms de fichiers sont répertoriés pour nous sans les guillemets.

Noms de fichiers sans guillemets dans une fenêtre de terminal.

La commande se décompose comme ceci:

rev inverse les lignes du fichier et les conduit en coupe.
L’option -c (caractères) indique à cut de renvoyer une séquence de caractères à partir de chaque ligne.
L’option 2 indique à cut de renvoyer la plage de caractères du caractère deux jusqu’à la fin de chaque ligne.
Les chaînes inversées, moins leurs premiers caractères, sont transmises à rev.
rev inverse les chaînes pour qu’elles reviennent à leur ordre d’origine. Ils sont coupés une deuxième fois.
L’option -c (caractères) indique à cut de renvoyer une séquence de caractères à partir de chaque chaîne.
L’option 2 indique à cut de renvoyer la plage de caractères du caractère deux jusqu’à la fin de chaque ligne. Cela «saute» sur le guillemet de début, qui est le caractère un sur chaque ligne.

  Comment basculer entre les haut-parleurs et le casque de jeu USB sous Linux

Beaucoup de tuyauterie

Voici une commande qui renvoie une liste triée de chaque extension de fichier dans le répertoire actuel. Il utilise cinq commandes Linux distinctes.

ls | rev | cut -d'.' -f1 | rev | sort | uniq

Le processus est simple:

ls répertorie les fichiers du répertoire courant. Ceux-ci sont insérés dans rev.
rev inverse les noms de fichiers et les transforme en coupe.
cut renvoie la première partie de chaque nom de fichier jusqu’à un délimiteur. Le -d ‘.’ dit à cut d’utiliser le point « . » comme délimiteur. La partie des noms de fichiers inversés jusqu’à la première période correspond aux extensions de fichier. Ceux-ci sont insérés dans rev.
rev inverse les extensions de fichier dans leur ordre d’origine. Ils sont mis en ordre.
sort trie les extensions de fichier et redirige les résultats vers uniq.
uniq renvoie une seule liste pour chaque type d’extension de fichier unique. Notez que s’il n’y a pas d’extension de fichier (comme pour le makefile et les répertoires Help et gc_help), le nom de fichier entier est répertorié.

Pour y mettre la touche finale, ajoutez l’option de ligne de commande -c (count) à la commande uniq.

ls | rev | cut -d'.' -f1 | rev | sort | uniq -c

Nous obtenons maintenant une liste triée des différents types de fichiers dans le répertoire actuel avec un décompte de chacun.

C’est un one-liner assez astucieux!

drawroF og ot drawkcaB gnioG

Parfois, il faut reculer pour avancer. Et vous avancez généralement le plus rapidement en équipe.

Ajoutez rev à votre répertoire de commandes go-to, et vous l’utiliserez bientôt pour simplifier des séquences de commandes autrement compliquées.