[shell unix] manipuler une chaine

Résolu
jebok Messages postés 371 Date d'inscription   Statut Membre -  
jebok Messages postés 371 Date d'inscription   Statut Membre -
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

--
Merci de votre aide
Configuration: AIX
ksh

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Et avec "cut" tout simplement, non ?
    $ var=abcdefghij
    $ echo $var | cut -b "1 2 3 4 5 6 9 10"
    abcdefij
    $
    ;-))
    4
  2. francis
     
    sog/log>echo toto | sed -e "s/o//g"
    tt
    sog/log>
    1
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    
    
    ;-))
    0
  4. jebok Messages postés 371 Date d'inscription   Statut Membre 51
     
    Merci à tous pour votre aide !
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Phiphi57 Messages postés 789 Date d'inscription   Statut Contributeur Dernière intervention   295
     
    Salut,

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

    a part ca, je vois pas trop...

    Phiphi
    -2
    1. jebok Messages postés 371 Date d'inscription   Statut Membre 51
       
      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
      0