De Linux rev
la commande inverse les chaînes de texte. Cette commande peut opérer sur le texte fourni ou sur un fichier, et il semble trompeusement simple. Mais tout comme de nombreux utilitaires de ligne de commande, sa véritable puissance devient apparente lorsque vous la combinez avec d'autres commandes.
Les rev
command est l'un de ces utilitaires Linux simples qui, à première vue, semble être une rareté. Remplit une seule fonction: chaînes inversées. Et en même temps pouvoir imprimer une page d'aide rapide (-h
) et vous montrer son numéro de version (-V
), n'accepte aucun options de ligne de commande.
Ensuite, rev
inverser les cordes, et c'est tout? Pas de variantes ni d'options? Bon, Oui et non. Oui, n'a pas de permutation, mais non, Ce n'est pas tout. Ce tutoriel vous montre comment le combiner pour des opérations puissantes.
Lorsque vous utilisez rev
comme bloc de construction dans des scripts plus compliqués, commence vraiment à montrer sa valeur. rev
fait partie d'un groupe de commandes (Quoi tac
Oui 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
prendre toute entrée écrite, l'inverse puis l'imprime dans la fenêtre du terminal. Continuez ainsi jusqu'à ce que vous appuyiez sur Ctrl + C pour sortir.
tour
Si vous tapez du texte et appuyez sur Entrée, Est-ce que rev
imprimer la chaîne à l'envers, à moins que vous ne fournissiez un palindrome, depuis lors.
Passer du texte à rev
Vous pouvez utiliser echo
pour diriger le texte vers rev
.
écho un deux trois | tour
Vous pouvez aussi utiliser rev
pour inverser le contenu d'un fichier texte intégral, ligne par ligne. Dans cet exemple, nous avons un fichier contenant une liste de noms de fichiers. Le fichier est appelé “liste de fichiers.txt”.
rev filelist.txt
Chaque ligne est lue à partir du fichier, est inversé puis imprimé dans la fenêtre du terminal.
Combiner rev avec d'autres commandes
Ensuite, Un exemple est montré en utilisant un pipeline d'entrée qui appelle rev
deux fois.
Cette commande supprime le dernier caractère de la chaîne de texte. Cela pourrait être utile pour effacer la ponctuation. Nous devons utiliser le cut
commande à dépouiller le personnage.
echo 'Supprimer la ponctuation.' | tour | couper -c 2- | tour
Analysons ça.
echo
envoyer la chaîne au premier appel àrev
.rev
inverse la chaîne et la canalise danscut
.- Les
-c
(personnages) option ditcut
pour retourner une séquence de caractères de la chaîne. - Les
2-
option ditcut
pour retourner la plage de caractères du caractère deux à la fin de la ligne. Si un deuxième numéro a été fourni, Quoi2-5
, la plage serait de deux à cinq caractères. Pas de deuxième nombre signifie “jusqu’au bout de la chaîne”. - La chaîne inversée, moins son premier caractère, ça va à
rev
qui inverse la chaîne, donc il revient à son ordre d'origine.
Parce que nous avons découpé le premier caractère du investi chaîne, on coupe le dernier caractère du original corde. Oui, pourrais-tu faire ça avec sed
O awk
, mais c'est une syntaxe plus simple.
Séparer le dernier mot
On peut utiliser une astuce équivalente pour retourner le dernier mot de la ligne.
La commande est équivalente à la précédente: de nouveau, les usages rev
deux fois. Les différences résident dans la manière cut
La commande est utilisée pour choisir des parties du texte.
echo 'Séparer le dernier mot' | tour | couper -d' ' -f1 | tour
Voici la répartition de la commande:
echo
envoyer la chaîne au premier appel àrev
.rev
inverse la chaîne et la canalise danscut
.- Les
-d' '
(délimiteur) option ditcut
pour retourner une séquence de caractères délimitée par un espace. - Les
-f1
option ditcut
pour retourner la première section de la chaîne cela n'a pas le délimiteur. Autrement dit, de la première partie de la phrase au premier espace. - Le premier mot inversé est passé à
rev
qui inverse la chaîne, donc il revient à son ordre d'origine.
Parce que nous avons extrait le premier mot du investi chaîne, nous avons coupé le dernier mot du original corde. Le dernier mot de prière était “mot” et il est imprimé pour nous.
Détourage du contenu du fichier
Disons que nous avons un fichier qui contient une liste de noms de fichiers et les noms de fichiers sont entre guillemets. Nous voulons supprimer les guillemets des noms de fichiers.
Voyons le fichier:
moins filelist.txt
Le contenu du fichier s'affiche pour nous dans less
.
On peut effacer la ponctuation des deux extrémités de chaque ligne avec la commande suivante. Cette commande utilise à la fois rev
Oui cut
deux fois.
rev filelist.txt | couper -c 2- | tour | couper -c 2-
Les noms de fichiers sont répertoriés pour nous sans les guillemets.
La commande se décompose comme ceci:
rev
inverse les lignes du fichier et les achemine danscut
.- Les
-c
(personnages) option ditcut
pour retourner une séquence de caractères de chaque ligne. - Les
2-
option ditcut
pour retourner la plage de caractères du caractère deux à la fin de chaque ligne. - Les chaînes inversées, moins ses premiers caractères, ils vont à
rev.
rev
inverser les cordes, donc ils retournent à leur ordre d'origine. Ils sont canalisés danscut
pour la deuxième fois.- Les
-c
(personnages) option ditcut
pour retourner une séquence de caractères de chaque chaîne. - Les
2-
option ditcut
pour retourner la plage de caractères du caractère deux à la fin de chaque ligne. Cette “Salta” le guillemet initial, quel est le caractère un sur chaque ligne.
Beaucoup de tuyaux
Voici une commande qui renvoie une liste ordonnée de chaque extension de fichier dans le répertoire courant. Utiliser cinq commandes Linux différentes.
ls | tour | couper -d'.' -f1 | tour | sorte | unique
La procédure est simple:
ls
liste les fichiers dans le répertoire courant. Ceux-ci sont canalisés dansrev
.rev
inverse les noms de fichiers et les redirige verscut
.cut
renvoie la première partie de chaque nom de fichier jusqu'à un délimiteur. Les-d'.'
décut
pour utiliser le point “.” comme délimiteur. La partie des noms de fichiers inversés jusqu'à la première période sont les extensions de fichiers. Ceux-ci sont canalisés versrev
.rev
inverse les extensions de fichiers dans leur ordre d'origine. Ils sont canalisés danssort
.sort
trie les extensions de fichier et redirige les résultats versuniq
.uniq
renvoie une liste unique 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 complet du fichier est affiché.
Pour lui donner une touche finale, ajouter le -c
(compter) option de ligne de commande pour uniq
commander.
ls | tour | couper -d'.' -f1 | tour | sorte | uniq -c
Maintenant, nous obtenons une liste ordonnée des différents types de fichiers dans le répertoire actuel avec un nombre de chacun.
C'est une phrase intelligente!
DrawroF et ot drawkcaB gnioG
Parfois il faut reculer pour avancer. Et vous avancez régulièrement plus vite en équipe.
Ajouter rev
à votre répertoire de commandes d'accès, et vous l'utiliserez bientôt pour simplifier des scripts qui seraient autrement compliqués.