[shell unix] manipuler une chaine

[Résolu/Fermé]
Signaler
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
-
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
-
Bonjour,

quelle commande UNIX permettrait de ne garder que les 6 premières et les 2 dernières lettres d'une chaine de caractères ?

Par exemple,
maChaine = 1234567890
et je veux obtenir :
maChaine2 = 12345690

5 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 882
Et avec "cut" tout simplement, non ?
$ var=abcdefghij
$ echo $var | cut -b "1 2 3 4 5 6 9 10"
abcdefij
$
;-))
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

sog/log>echo toto | sed -e "s/o//g"
tt
sog/log>
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 882
Salut,

En une seule opréation je ne pense pas que ce soit possible il faudra passer par une autre commande :
expr "$maChaine" : ".*\(..\)"
Regarde aussi du côté de la commande "typeset" en kornshell :
$ typeset -L4 A=1234567890
$ echo $A
1234
$ typeset -R2 A=1234567890
$ echo $A
90

;-))
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
52
Merci à tous pour votre aide !
Messages postés
789
Date d'inscription
samedi 26 février 2005
Statut
Contributeur
Dernière intervention
19 juillet 2009
291
Salut,

peut etre du coté de sed ou de awk ??
man sed
man awk

a part ca, je vois pas trop...

Phiphi
Messages postés
358
Date d'inscription
lundi 16 mai 2005
Statut
Membre
Dernière intervention
23 octobre 2007
52
salut,

en fait la commande
expr "maChaine" : "\(.......\)"

me permet de sélectionner les 6 premiers caractères de la chaine.
Mais je n'arrive pas à recuperer les 2 derniers...

Quelqu'un a une idée ?
Merci