IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Manipulation de caractères


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut Manipulation de caractères
    Bonjour,

    J'ai besoin sur shell/unix de transformer une date en SSAAMMJJ en JJMMAA. j'ai utilisé l'expression expr substr mais je n'arrive qu'a transféré que JJ.
    Comment puis je faire pour transférer le MM et AA?
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Bonjour,

    RTFM - voir ${paramètre:début:longueur}
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Salut :

    Solution 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     var=SSAAMMJJ
    var=${var:6:2}${var:4:2}${var:2:2}
    echo $var
    Solution 2 :


  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut reponse
    Bonjour,

    Voici le code impacte et après le résultat. J'ai un bad susbtition.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    #!/bin/ksh
    #==================================================================
    # Script                : envoyer_devis_jnr.ksh
    # Date Creation         : 15/09/2017
    # Auteur                : JNR
    # Fonction              : 
    #
    # Script(s) appelant(s) : 
    # Script(s) appele(s)   : 
    #
    # Modification          : 15/09/2017    JNR      Version docapost
    #
    # Syntaxe               : envoyer_devis_jnr.ksh
    #==================================================================
     
      set -o allexport
     
    #==================================================================
    # INITIALISATIONS
    #==================================================================
     
     # Chargement de la bibliotheques de fonctions
     . $REP_CONFIG/fonctions.ksh || { echo "Erreur lors du chargement de la bibliotheque de fonctions" ; exit 1 ; }
     
      FIC_MAIL="$REP_DEVIS_MAIL/adresse_mail"
      REP_DEVIS_AENVOYER="/users/app/editique/devis/aenvoyer"
      REP_DEVIS_RECUS="/users/app/editique/devis/Docapost/6_recus"
      REP_DEVIS_PDF_ENVOYES="/users/app/editique/devis/Docapost/9_devis_pdf_envoyes"
      FIC_DEVIS_INFOS=/users/app/editique/devis/Docapost/2_infos/DEVIS_INFOS
      FIC_DEVIS_INFOS_ENV=/users/app/editique/devis/Docapost/2_infos/DEVIS_INFOS_ENV
      FIC_DEVIS_INFOS_NENV=/users/app/editique/devis/Docapost/2_infos/DEVIS_INFOS_NENV
     
      integer CPT=0
      integer NB_DOUBLONS=0
      integer NB_MAIL_ERROR=0
     
    #==================================================================
    # TRAITEMENT
    #==================================================================
     
     log I "Debut du traitement           : $0"
     
      NB_LIGNES=`ls $REP_DEVIS_RECUS | wc -l`
     [ $NB_LIGNES -eq 0 ] && log E "Le repertoire $REP_DEVIS_RECUS est vide => aucun fichier a traiter"
     
      [ $NB_LIGNES -ge $SEUIL_DEVIS ] && log E "Le seuil d'envoi de devis par mail a ete atteint : $NB_LIGNES > $SEUIL_DEVIS"
     
      FIC_AS400=`/opt/freeware/bin/find $REP_DEVIS_AS400 -type f -mmin -720 | xargs ls -t | head -1`
      ctrl_fichier $FIC_AS400
      log I "Fichier des references AS400  : $FIC_AS400"
     
      FIC_DOUBLONS=$REP_DEVIS/fic_doublons
      ctrl_fichier $FIC_DOUBLONS
     
      REP_DEVIS_PDF_ENVOYES_VACATION="$REP_DEVIS_PDF_ENVOYES/$VACATION"
      mkdir $REP_DEVIS_PDF_ENVOYES_VACATION || log E "Erreur lors de la creation du repertoire envoyes $REP_DEVIS_PDF_ENVOYES_VACATION"
     
      log I "Vacation                      : $VACATION"
      log I "Nombre de fichier(s) en entree: `basename $NB_LIGNES`"
     
      for FICHIER in `ls $REP_DEVIS_RECUS`
        do
     
            log I "                                                                                             "
            log I "---------------------------------------------------------------------------------------------"
            log I "Traitement du fichier         : $FICHIER"
     
            FIC=" "
            FIC=${FICHIER%.*}
     
     
        	DTE=$(echo $FIC | cut -d"_" -f4)
        	ORD=$(echo $FIC | cut -d"_" -f5)
     
            KDEVIS="${DTE}_${ORD}"
            JJMMAA=${dte:6:2}${dte:4:2}${dte:2:2}
            log I "Clé Devis                     : $KDEVIS"
            log I "JJMMAA                     : $JJMMAA"[/COLOR]
    RESULAT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    17Jan2019 - 09:29:44 - [I] - 4591700  - Debut du traitement           : /users/app/editique/devis/envoyer_devis.ksh
     17Jan2019 - 09:29:44 - [I] - 4591700  - Fichier des references AS400  : /users/app/editique/devis/as400/MAILDVFP0_140119
     17Jan2019 - 09:29:44 - [I] - 4591700  - Vacation                      : 20190117092944
     17Jan2019 - 09:29:44 - [I] - 4591700  - Nombre de fichier(s) en entree: 1
     17Jan2019 - 09:29:44 - [I] - 4591700  -                                                                                              
     17Jan2019 - 09:29:44 - [I] - 4591700  - ---------------------------------------------------------------------------------------------
     17Jan2019 - 09:29:44 - [I] - 4591700  - Traitement du fichier         : SGRA1400021_DV.4RVD.EMAIL_PRRMCB01_20190114_015_00000000.pdf
    /users/app/editique/devis/envoyer_devis.ksh[76]: JJMMAA=${dte:6:2}${dte:4:2}${dte:2:2}: bad substitution
    Cordialement.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    comment exécutes-tu le script ?

    cette syntaxe n'est pas compatible avec sh.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Par défaut
    Bonjour,

    Je le lance grâce à putty.

    Cordialement

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    montre-nous !
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment manipuler les caractères japonais
    Par cmoijulien dans le forum Windows Forms
    Réponses: 6
    Dernier message: 01/07/2007, 14h14
  2. Réponses: 16
    Dernier message: 30/01/2007, 00h20
  3. Manipulation de caractères
    Par Death83 dans le forum C++
    Réponses: 4
    Dernier message: 18/12/2006, 07h58
  4. [VB]manipulation des caractères d'un string
    Par lacsap49 dans le forum VB.NET
    Réponses: 5
    Dernier message: 16/06/2006, 18h43
  5. Aide sur une fonction / pbm de manipulation de caractère
    Par captainamerica75 dans le forum Access
    Réponses: 3
    Dernier message: 16/02/2006, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo