• # Besoin de plus de contexte et de clarté

    Posté par . En réponse au message Comportement GREP différent dans le shell et dans un script. Évalué à 3.

    Bon, j'ai moyennement compris ton problème, car les explications en français c'est moyen (« lancer plusieurs fois » : pour quelle raison ? avec quels arguments ? pour quel résultat ? ; tu as des fichiers d'une ligne, est-ce qu'ils correspondent à une « erreur » ? c'est quoi ces « erreurs » ?).

    Par contre, je peux te dire que c'est contre-productif de faire un grep dans awk : awk a des fonctions intégrées pour ça. Si tu veux faire quelque chose quand une ligne match, fait :

    /\^Chaine1/ { quelquechose }
    

    Ensuite, si tu veux faire « simplement » du remplacement, un bon vieux sed marche bien. Ton fichier de chaînes, d'ailleurs, tu pourrais en faire un script sed :

    #!/usr/bin/sed -e
    s/Chaine1/Remplace1/
    s/Chaine2/Remplace2/
    

    Etc. Et si tu veux vraiment que ça soit un CSV avec point virgule, tu pourrais même l'écrire ainsi :

    s;Chaine1;Remplace1;
    s;Chaine2;Remplace2;
    

    Et ton fichier tableur devient magiquement un script sed qui fait ce que tu veux.