[shell unix] manipuler une chaine

Résolu
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. Modérateur
    Et avec "cut" tout simplement, non ?
    $ var=abcdefghij
    $ echo $var | cut -b "1 2 3 4 5 6 9 10"
    abcdefij
    $
    ;-))
    4
    1. sog/log>echo toto | sed -e "s/o//g"
      tt
      sog/log>
      1
      1. Modérateur
        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
        1. Merci à tous pour votre aide !
          -1
          1. Contributeur
            Salut,

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

            a part ca, je vois pas trop...

            Phiphi
            -2
            1. 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