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

Linux Discussion :

Supprimer X caractères à la fin de chaque ligne d'1 fichier


Sujet :

Linux

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 96
    Points : 72
    Points
    72
    Par défaut Supprimer X caractères à la fin de chaque ligne d'1 fichier
    Bonjour,

    J'ai un gros fichier SQL que je dois modifier. Pour me faciliter la tâche il faut que je supprime les 37 derniers caractères de chaque ligne.
    Pour celà je me demande si je peux utiliser la commande de substitution de sed, ou utiliser des commandes de VI. Je ne sais pas trop comment faire puisque les 37 derniers caratères d'une ligne ne forment jamais la même chaine.

    Merci de votre aide.

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2003
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut,

    Je suis pas un expert dans l'utilisation avancée de vi alors moi, ce que je ferais c'est un petit script en perl ou en php au choix.

    Tu ouvres 2 fichiers, 1 en lecture (le fichier SQL) et l'autre en ecriture

    L'algo général serait :

    - Pour chaque ligne :
    tu sauvegardes la lignes
    tu recuperes le nombre de caracteres de la ligne
    et tu ecris dans le fichier de sortie les caractere de 0 à nbCaractere-37

    voilà, c'est ce que je ferais parce que j'aime bien utiliser le language perl ...

    @+

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    Vite fait, sous vim, tu te fait une map :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :map <F9> <END>37x<DOWN>
    Tu te met sur la première ligne et du fait F9 jusqu'a la derniere ligne... Enfin, si ton fichier a beaucoup de ligne, a améliorrer

    Bon dveloppement !

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Pour vim, bien plus simplement :
    qui va prendre 37 caractères exactement. Utiliser "\{,37}" si jamais les lignes peuvent être plus courtes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    :h :substitute
    :h /\{
    :h /$
    :h /.
    :substitute est une des commandes les plus importantes des de VI et ses descendants.

    Après, je n'ai jamais trop su si sed était capable de faire la même chose sans avoir à taper 37 '.'.

    Avec Perl on peut tout à fait définir un filtre qui fonctionne de la même façon (réalise une substitution qui coupe les derniers 37 caractères).

    PS: sous vim, sauf nécessité, toujours préférer les :nnoremap aux :map

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 96
    Points : 72
    Points
    72
    Par défaut
    Ok, merci de vos réponses.

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

Discussions similaires

  1. ajouter un ; a la fin de chaque ligne de mon fichier CSV
    Par pelois dans le forum Conception
    Réponses: 1
    Dernier message: 21/06/2010, 09h24
  2. Réponses: 10
    Dernier message: 16/12/2009, 22h16
  3. Réponses: 5
    Dernier message: 14/04/2008, 15h27
  4. aller a la fin de la ligne dans un fichier
    Par deubelte dans le forum C++
    Réponses: 1
    Dernier message: 21/01/2007, 01h03
  5. Réponses: 1
    Dernier message: 19/08/2006, 15h02

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