C'est, allant de ABCD
->ABC
Comment raser le dernier caractère en utilisant sed?
Répondre
Vous pouvez essayer:
sed s'/.$//'
Le regex utilisé est .$
.
est une expression régulière méta char correspondre quoi que ce soit (sauf nouvelle ligne$
est l'ancre de fin de ligne.
En utilisant le $
on force le .
pour correspondre le dernier caractère
Cela supprimera le dernier char, que ce soit quelque chose:
$ echo ABCD | sed s'/.$//'
ABC
$ echo ABCD1 | sed s'/.$//'
ABCD
Mais si vous voulez supprimer le dernier caractère , seulement si c'est un alphabet, vous pouvez faire:
$ echo ABCD | sed s'/[a-zA-Z]$//'
ABC
$ echo ABCD1 | sed s'/[a-zA-Z]$//'
ABCD1
vous n'avez pas de commandes externes si vous êtes chanter une coquille, par exemple bash/ksh
s="ABCD"
echo ${s/%?/}
Une solution de bash associée 'echo $ {s: 0: -1}', qui spécifie l'index du premier caractère que vous voulez ('0' pour le début) et l'index du dernier caractère que vous voulez, où un signe moins fait que l'indice compte par rapport à la fin («-1» pour l'avant-dernier caractère). – scottgwald
Cela fonctionne ... merci! –
Votre explication est très appréciée ... merci! –