J'ai une date particulière (anniversaire d'une personne) stockée dans un fichier, par exemple 01/02/1900. Je veux savoir si l'âge de la personne est supérieur ou égal à 20 ans. J'utilise des scripts shell.Aide au script Shell requise
-2
A
Répondre
0
sur Linux avec GNU coreutils (c.-sur toutes les principales distributions Linux), vous pouvez utiliser date
pour convertir les dates à un certain nombre de comparaison:
#!/bin/bash
# Arguments: <age-limit> <birth-date>
LIMIT=$(date --date="$1 years ago" +%s)
BIRTH=$(date --date="$2" +%s)
if [[ "$BIRTH" -gt "$LIMIT" ]]; then
echo "Birth-date less than $1 years ago"
else
echo "Birth-date at least $1 years ago"
fi
Veuillez noter que les chaînes de date telles que 01/02/1900
sont ambiguës w.r.t. l'ordre du mois/jour. Sur mon système et mes paramètres régionaux date
suppose que le mois précède le jour - YMMV.
1
Juste une blague, mais vous pouvez peut-être obtenir ce dont vous avez besoin: Il se lit d'une date par ligne de /path/to/file.txt
et sorties quel âge cette personne est et Wheater il est plus jeune ou plus vieux que 20.
#!/bin/bash
while read DATE junk; do
QDATE=$(echo "$DATE" | sed 's#/#%2F#g')
ANS=$(curl -s "http://www.wolframalpha.com/input/?i=%28now+-+${QDATE}%29+in+years" | grep -Eo '"[0-9]+(\.[0-9]+)? years"')
AGE=$(echo "$ANS" | sed -r -e 's/"//g' -e 's/ years//g' -e 's/\..+//g')
if [ -z "$AGE" ]; then
echo "$DATE: ERROR occured"
continue
fi
if [ $AGE -ge 20 ]; then
echo "$DATE ($ANS): Person older or equal to 20 years"
else
echo "$DATE ($ANS): Person younger than 20 years"
fi
done < /path/to/file.txt
Exemple:
$ cat /path/to/file.txt
01/01/1900
08/11/1992
09/12/1992
$ bash test.sh
01/01/1900 ("112.9 years"): Person older or equal to 20 years
08/11/1992 ("20 years"): Person older or equal to 20 years
09/12/1992 ("19.92 years"): Person younger than 20 years
Questions connexes
- 1. Aide au verrouillage requise
- 2. script shell awk aide
- 3. Aide au refactoring LINQ requise
- 4. Aide au raclage CasperJS requise
- 5. aide au stockage de session requise
- 6. Aide sur le script shell
- 7. Aide concernant un script shell
- 8. Aide de script Perl simple requise
- 9. Aide au test de l'unité Grails requise
- 10. Aide au débogage JQuery asmx requise
- 11. Menu déroulant Aide requise
- 12. Conception Aide/Suggestion requise
- 13. Aide d'expression régulière requise
- 14. au sujet d'un script shell
- 15. conversion au script shell ksh
- 16. Aide htaccess requise
- 17. Javascript/Ajax aide requise
- 18. Ancienne aide javascript requise
- 19. Aide requise dans regex
- 20. Aide EJB requise
- 21. Aide de StructureMap requise
- 22. Expression régulière- Aide requise
- 23. Classes C++, aide requise
- 24. Requête MySQL: aide requise
- 25. Regex Aide requise
- 26. Aide jqgrid requise
- 27. LINQ - JSON Aide requise
- 28. Instruction SQL aide requise
- 29. BackgroundWorker Aide requise
- 30. Aide de Regex requise
Grande délégation travail là en utilisant WolframAlpha;) –
hehe, en effet :-) –