J'ai un fichier * .dat qui augmente de manière incrémentielle pendant plusieurs heures. Je veux surveiller une certaine valeur dans le temps afin que je puisse les comparer, regarder sa tendance et ainsi de suite.Bash: Stocke le dernier mot de chaque ligne commençant par
Ce que j'ai jusqu'à présent:
LTIME=$(stat -c %Z test2.dat)
while true
do
ATIME=$(stat -c %Z test2.dat)
if [[ "$ATIME" != "$LTIME" ]]
then
grep "15 RT" test2.dat > test_grep2.txt
LTIME=$ATIME
fi
sleep 60
done
qui met à jour un fichier texte artificiel avec chaque incrément du * .dat. Retours des choses comme:
15 RT 0.000 0.000 0.000 0.000 0.000 -1.4666E+04
15 RT 0.000 0.000 0.000 0.000 0.000 -1.7073E+04
15 RT 0.000 0.000 0.000 0.000 0.000 -1.9379E+04
15 RT 0.000 0.000 0.000 0.000 0.000 -2.1583E+04
J'ai aussi celui-ci:
while read line
do [ -z "$line" ] && continue ;echo ${line##* }
done < test_grep2.txt
qui prend le dernier "mot" de chaque ligne de ce txt dans la console:
1.0225E+04
1.1738E+04
1.3219E+04
1.4668E+04
1.6083E+04
2.4867E+04
2.5943E+04
Mais je havent a encore réussi à mettre ces deux ensemble. Ce travail juste ne (les derniers « mots » ne sont pas imprimés comme le txt grep ne cesse de se mettre à jour):
[ -e test_grep.txt ] && rm test_grep.txt
LTIME=$(stat -c %Z test2.dat)
while true
do
ATIME=$(stat -c %Z test2.dat)
if [[ "$ATIME" != "$LTIME" ]]
then
grep -i "15 RT" test.dat > test_grep.txt
LTIME=$ATIME
fi
sleep 5
done
datime=$(stat -c %Z test_grep.txt)
while true
do
datime2=$(stat -c %Z test_grep.txt)
if [[ "$datime2" != "$datime" ]]
then
while read line
do [ -z "$line" ] && continue ;echo ${line##* }
done < test_grep.txt
datime=$datime2
fi
sleep 5
done
Et je crois qu'il doit y avoir un moyen plus efficace et élégante que l'utilisation d'un fichier temporaire.
Puis-je vous demander votre aide pour cela? Sourcing le dernier "mot" de chaque ligne qui contient la chaîne "15 RT" et soit les stocker ou enregistrer dans un fichier pour comparaison/évaluation ultérieure. Et tout cela "en ligne". Comme le * .dat se développe encore et encore.
Merci beaucoup!
Réduit le problème. – ceving
Bon point, merci ... Bien qu'un peu inutile. – Jewenile
C'est très utile, car cela augmente la chance d'obtenir une réponse. – ceving