• [^] # Re: un essai

    Posté par . En réponse au message aide avec awk. Évalué à 1.

    Bon, ton script m'a permis de mieux comprendre la question de départ et je me permet donc de mettre une version corrigée de mon premier script (même si finalement tu as déjà trouvé ta réponse).

    #!/bin/sh

    echo "Tps ondes P" > /tmp/tmp.txt

    # Récupération des champs 2 et 12 de chaque ligne de `sacinfo.txt'
    # On les concatène avec un caractère de séparation dont on est sûr qu'il
    # ne figure pas dans ces champs (ici `@'). Ca permet de faire des deux
    # champs une seule variable pour la boucle `for' et donc un traitement
    # par `pipe' sur chaque couple de champs. Le `@' est supprimé avec `sed'
    # pour récupérer les deux champs par la suite.
    for var in `awk -F "\t" '{if (NR != 1) {print 2ドル"@"12ドル}}' sacinfo.txt`; do
    echo -ne "P\n\n$var\n-1\n-1\n" \
    | sed -e "s/@/\n/" \
    | ttimes \
    | awk '{if (NR==37) {print 4ドル}}' >> /tmp/tmp.txt
    done

    paste sacinfo.txt /tmp/tmp.txt > sacinfo.new.txt

    rm -f /tmp/tmp.txt


    Évidemment, je n'ai pas testé mais sauf erreurs ça devrait fonctionner tel quel. Logiquement ça devrait aussi être plus rapide que ta version où tu fais autant de traitement de sacinfo.txt par `awk' que le fichier ne comprend de lignes (ce qui doit être pas mal bourrin, surtout si sacinfo.txt comprend beaucoup de lignes).
    Par contre, ma version est un peu grouiik avec ce bidouillage de `@', mais bon, on ne peut pas tout avoir !