Récupère les caractères après le dernier index d'une sous-chaîne d'une chaîne
J'ai une chaîne qui est une sortie d'une autre commande. J'ai seulement besoin de la fin de cette chaîne de caractères à afficher. La chaîne de séparation est ".
" (dot et de l'espace), et j'ai besoin de la chaîne après le dernier indice de la ".
".
Comment puis-je le faire en Bash?
source d'informationauteur Patartics Milán
Vous devez vous connecter pour publier un commentaire.
essayez ceci:
ce fonctionne peu importe le nombre de "points" ou "dot et de l'espace" avez-vous dans votre entrée. il faut de la chaîne après la dernier "dot et de l'espace"
Si la chaîne est dans une variable:
S'il existe plusieurs instances de ". "(comme dans mon exemple) et que vous voulez tout ce qui est après le première occurrence, au lieu de la dernière, il suffit d'utiliser une
#
:Essayez ceci:
La
rev
annule la sortie. Le-d
spécifie le séparateur, à tout casser dans les champs. Le-f
spécifiant les champs que vous souhaitez utiliser. Nous pouvons sélectionner f1, parce que nous avons inversé les données. Nous n'avons pas besoin de savoir comment de nombreux domaines, il existe au total. Nous avons juste besoin de connaître le premier. À la fin, on inverse à nouveau, de le remettre dans le bon ordre.Awk est à la fois élégante arme...pour le plus civilisé de l'âge:
Dans ce cas NF est le awk variable "Nombre de champs" et de cette construction dit "imprimer l'entrée dans le plus grand nombre de champs trouvé" donc, si la taille de votre changement d'entrée d'une ligne à la suivante, vous êtes toujours va obtenir le dernier.
Vous pouvez aussi faire des mathématiques:
(Oui, c'est 3 ans de retard pour l'OP, mais un de mes collègues m'a signalé cette page aujourd'hui pour quelque chose sur lequel nous travaillons, donc je pensais passer ce ici au cas où d'autres sont à la recherche).