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

AIX Discussion :

Ajout en append d'un texte à la fin d'un fichier en SED AIX


Sujet :

AIX

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut Ajout en append d'un texte à la fin d'un fichier en SED AIX
    Bonjour,

    Je souhaite ajouter une chaîne de caractère (deux lignes) grâce à la commande SED, à la fin d'un fichier texte.
    Il s'agit d'un fichier de configuration.
    Dans mon SED, ce qui marche déjà : je supprime des lignes et je fais des chercher/remplacer.

    C'est la raison pour laquelle, je souhaite faire tout d'un coup avec une unique commande SED.

    J'ai cherché sur internet et dans la FAQ et rien à faire. Au mieux, je tombe sur des choses qui sont pour Linux et pas pour AIX, ce qui n'arrange pas mon affaire.


    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sed -e "/^toto/d" \
    	-e "s/titi/tutu/g" \
    	-e '$a\
    premiere ligne à ajouter a la fin' \
    \deuxieme ligne à ajouter a la fin'  ancienfichier.txt > nouveaufichier.txt
    J'ai mis en gras ce qui me pose problème. Par avance merci.

    Il me répond :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed: Function $a\  cannot be parsed.
    J'espère que ma question est claire.
    Pourriez-vous m'aider s'il vous plaît ?

    Marco.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Tel que copié-collé ici, il y a un 'simple quote' en trop.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Merci beaucoup pour ta réponse.
    En effet, il s'agit sûrement d'un mauvais copié-collé.

    Bon à présent, j'ai un autre message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed: Cannot find or open file  .
    J'ai bien regardé et même mis des traces dans mon script et le chemin a l'air correct.
    Je sèche.

    Bonne soirée et bon weekend,
    Marco.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Et donc, là, tu attends qu'on t'apportes des corrections d'un code qu'on n'a pas, en se référant à vieux code, tout mal recopié, avec des quotes incorrects et des contre-obliques placées n'importe où ?

    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Désolé, mais il s'agit d'un fichier de paramétrage que je n'ai pas le droit de donner ici.
    Par contre, j'ai pris soin de le présenter d'une manière fidèle au niveau du comportement.
    Par contre, les antislash ("contre-obliques" ?) ne sont pas posés au hasard (c'est bien le sens de ta question ?).
    Ils correspondent à des choses que j'ai pu trouver sur internet et aux différents tes que j'ai pu faire.

    Si je viens ici ce n'est pas pour que l'on fasse mon travail à ma place, mais bien pour avoir une aide et éventuellement de conseils .

    Je te remercies de tes réponses. Une autre idée ?

    Marco.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Citation Envoyé par cotmar Voir le message
    les antislash ("contre-obliques" ?) ne sont pas posés au hasard
    \d qui débute une ligne, c'est pas au hasard ?

    Donne ton code corrigé.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Non pas du tout, ça n'est pas du tout du hasard.
    D'ailleurs, je te remercie de ton aide.

    Je veux :

    • Supprimer des lignes qui commencent par la chaîne "toto"
    • Remplacer des chaines de caractères
    • Et insérer deux lignes à la fin du fichier


    Il y a quelque chose qui ne va pas dans ce code ? Du coup, je n'ai pas compris ta question ?

    Marco.

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Ça, ce n'est pas du code, c'est une intention.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 481
    Points : 165
    Points
    165
    Par défaut
    Bonjour,


    Bon, j'ai enfin compris ce que tu voulais dire au dessus.

    des contre-obliques placées n'importe où ?
    L'antislash en début de ligne vient d'une syntaxe trouvée sur internet, mais elle ne semble pas être nécessaire en effet.

    Je pense avoir compris aussi pourquoi ça ne marchait pas dans mon code : il y avait un caractère invisible parasite, un truc à s'arracher les cheveux. Déjà qu'il ne m'en reste pas beaucoup.

    Le code valide est donc bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sed -e "/^toto/d" \
    	-e "s/titi/tutu/g" \
    	-e '$a\
    premiere ligne à ajouter a la fin \
    deuxieme ligne à ajouter a la fin'  ancienfichier.txt > nouveaufichier.txt
    Au fil de mes différentes tentatives, j'ai aussi fais la chose suivante (également trouvée sur Internet) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sed -e "/^toto/d" \
    	-e "s/titi/tutu/g" \
    	-e '/$/a\
    premiere ligne à ajouter a la fin \
    deuxieme ligne à ajouter a la fin'  ancienfichier.txt > nouveaufichier.txt
    Ça vous rajoute la chaine de caractères à la fin de chaque ligne... D'où un résultat assez surprenant.

    Le append du SED sous AIX est étrangement assez mal documenté sur Internet et dans le MAN. Pourriez-vous s'il vous plaît le rajouter dans votre FAQ ?

    Merci encore.

    Marco.

  10. #10
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 477
    Points : 11 059
    Points
    11 059
    Par défaut
    Citation Envoyé par cotmar Voir le message
    Le append du SED sous AIX est étrangement assez mal documenté sur Internet et dans le MAN. Pourriez-vous s'il vous plaît le rajouter dans votre FAQ ?
    Documentation IBM :
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

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

Discussions similaires

  1. [PowerShell] Ajouter un text à la fin d'une ligne
    Par aurelson101 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 12/04/2021, 10h50
  2. Append - rajouter un texte à la fin d'un myfile.txt
    Par kikica dans le forum Débuter
    Réponses: 10
    Dernier message: 14/11/2015, 10h28
  3. [JavaScript] [SRC] ajouter ou supprimer un champ texte
    Par javatwister dans le forum Contribuez
    Réponses: 5
    Dernier message: 01/08/2007, 15h53
  4. Réponses: 19
    Dernier message: 10/07/2007, 09h24
  5. ajout d'un champs input text dans un formulaire
    Par korrigann dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/04/2006, 15h45

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