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 :

[Centos 5] Script Shell remplacement de caractère et envoie par FTP


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de _shuriken_
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2006
    Messages : 543
    Par défaut [Centos 5] Script Shell remplacement de caractère et envoie par FTP
    Bonjour,

    Chaque jour, je fais des traitements manuels sur des fichiers : Ou seuls les caractères alphanumériques sont autorisés. Les caractères spéciaux sont remplacés par du vide ou plus précisément de l'espace pour ne pas altérer la structure du fichier que j'envoie ensuite (toujours) manuellement par FTP sur un serveur.

    J'aimerai savoir si c'était possible avec un script SHELL d’effectuer ces contrôles, puis d'envoyer par FTP le fichier. Si oui, un petit exemple précis que je pourrai adapter ?

    Merci d'avance.

    Cordialement,
    _shuriken_

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 357
    Par défaut
    Bonjour,
    Oui, cela doit être possible, cela dépend du besoin précis:
    Pour la partie ftp, il faudra que tu puisse gérer le passage du mot de passe (un petit scp avec clé public serait plus simple).

    Pour la partie vérification et transcodage, sed semble être le mieux placé mais le problème n'est pas clair:
    seul les caractéres alphanumérique sont autorisés
    remplacement des caractères spéciaux par des espaces
    Là j'ai du mal à comprendre car l'espace n'est pas un caractère alphanumérique...
    Donc la question est: qu'appelles-tu un caractère alphanumérique ?

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Question qui va dans le même sens: le 'e' surmonté d'un accent est-il un caractère spécial pour toi ? Y en a-t-il dans ton fichier ? et des 'à', 'ù' 'ô', etc ?
    Et des virgules ? points? point-virgules ?

    Un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[^a-zA-Z0-9 ]/ /g' fichier_entree >fichier_sortie

  4. #4
    Membre éclairé Avatar de _shuriken_
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2006
    Messages : 543
    Par défaut
    Salut,

    Merci pour vos réponses.

    Oui, sed me semble plus indiqué.

    Les caractères spéciaux selon mon programme : / \ $ ^ * é è à & ' " | etc...

    Seuls ceux-ci doivent être prise en compte : a-z ou A-Z ou 1-9

    Une fois que l'on rencontre 1 caractère de type "é", il doit être remplacé par e ou E; les autres spéciaux cités ci-dessus doivent être remplacé par un "space" ce qui est différent du vide ^^.

    @Flodelarab et si mon fichier de sortie doit avoir le même nom que mon fichier d'entrée ?

    Cordialement,

  5. #5
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    A priori pour un texte en français, ceci est suffisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 'y/àâçéèêëîïôöùüÂÀÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuAACEEEEIIOOUU/; s/[^a-zA-Z0-9 ]/ /g' fichier
    NB: L'option -i modifie ton fichier d'entrée. Si tu rajoutes ".bak", il peut te garder un fichier de sauvegarde. Sinon, c'est irréversible.

  6. #6
    Membre éclairé Avatar de _shuriken_
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2006
    Messages : 543
    Par défaut
    Merci Flodelarab,

    Je vais tester. Dans la même optique, je peux ajouter les tirets (-) (+) apostrophes (') double quôte (")?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i 'y/àâçéèêëîïôöùüÂÀ-+ÇÉÈÊËÎÏÔÖÙÜ/aaceeeeiioouuAACEEEEIIOOUU/\'\"; s/[^a-zA-Z0-9 ]/ /g' fichier
    Merci,

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

Discussions similaires

  1. script shell: problème avec le caractère espace
    Par Le fut dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/05/2017, 11h49
  2. script pour remplacer des caractères par des blancs
    Par floctc dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2009, 16h44
  3. Réponses: 0
    Dernier message: 03/06/2008, 11h44
  4. Réponses: 3
    Dernier message: 11/09/2007, 17h58
  5. Réponses: 11
    Dernier message: 01/12/2004, 19h09

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