Obtenir les 4 derniers caractères de la sortie de standard
J'ai un script qui s'exécute et utilise
lspci -s 0a.00.1
Cela renvoie
0a.00.1 usb controller some text device 4dc9
Je veux obtenir ces 4 derniers caractères inline tels que
lspci -s 0a.00.1 | some command to give me the last 4 characters.
Vous devez vous connecter pour publier un commentaire.
Comment sur
tail
, avec la-c
commutateur. Par exemple, pour obtenir les 4 derniers caractères de "bonjour":Notez que j'ai utilisé 5 (4+1), car le caractère de saut de ligne est ajouté par
echo
. Comme suggéré par Brad Koch ci-dessous, utilisezecho -n
pour éviter le caractère de saut de ligne d'être ajouté.echo -n
permettrait d'éviter que le saut de ligne octet d'être ajouté.Voulez-vous vraiment le dernier des quatre personnages? Il semble que vous souhaitez le dernier "mot" sur la ligne:
Cela fonctionne si l'ID est de 3 caractères, ou 5, en tant que bien.
À l'aide de
sed
:De sortie:
sed -n '$s/.*\(....\)$/\1/p'
; ce n'imprime que la dernière ligne de sortie, et 4 points sont plus simples que les 6 caractères utilisés pour le décrire avec la.\{4\}
notation.Essayez cela, dire si la chaîne est stockée dans la variable toto.
J'ai l'habitude d'utiliser
rev|cut|rev
le plus rapide de toutes les solutions possibles.Si la requête réelle est de copier la dernière chaîne séparée par des espaces indépendamment de sa longueur, puis la meilleure solution semble être l'utilisation d'
... | awk '{print $NF}'
donnée par @Johnsyweb. Mais si c'est en effet à propos de la copie d'un nombre fixe de caractères à partir de la fin d'une chaîne de caractères, alors il y a un bash solution spécifique sans avoir besoin d'invoquer toute autre sous-processus par tuyauterie:Veuillez noter que l'espace entre les deux points et le caractère moins est essentielle, car sans elle, la chaîne sera livré:
Essayez d'utiliser
grep
:Cela permettra d'imprimer les 4 derniers caractères de chaque ligne.
Néanmoins, si vous souhaitez avoir les 4 derniers caractères de l'ensemble de sortie, utilisez
tail -c4
à la place.Plus d'une façon de procéder est d'utiliser
<<<
notation:au lieu d'utiliser les variables nommées, développer la pratique de l'utilisation de la position des paramètres, comme ceci: