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 !
[^] # Re: un essai
Posté par tzeentch00 . En réponse au message aide avec awk. Évalué à 1.
#!/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 !