• # A tester !

    Posté par (site web personnel) . En réponse au message Bash, sed , awk ?. Évalué à 3.

    En copiant les lignes ci-dessous dans remplace.sh:


    #!/bin/sh

    a_remplacer=""
    while read data; do
    fin=`echo $data | grep '^"[^#]*","Machin"'`
    if [ -n "$fin" ] ; then
    # Fin du traitement car "Machin" trouvé
    a_remplacer=""
    echo "$data"
    else
    if [ -n "$a_remplacer" ] ; then
    # Ligne dans laquelle il faut remplacer "" par "truc"
    ligne=`echo $data | sed 's/^\("[^"]*",\)\("[^"]*"\)\(.*\)/1円"truc"3円/'`
    echo "$ligne"
    else
    recherche=`echo $data | grep '^"[^"]*","truc"'`
    if [ -n "$recherche" ] ; then
    # A partir de maintenant il faut remplacer "" par "truc"
    a_remplacer="OUI"
    fi
    echo "$data"
    fi
    fi

    done


    et ensuite:
    ./remplace.sh < fichier_data > fichier_ok

    fichier_data = le fichier contenant les données à traiter
    fichier_ok = le fichier contenant les données traitées

    Après un rapide test et si j'ai bien compris ça semble à peu près faire ce que tu veux, mais bon .. à tester !