Comment puis-je écrire un script shell pour diriger les données grep dans un nom de fichier basé sur la date?
Question
Je veux fondamentalement faire ceci:
grep 'example.com' www_log > example.com.YYYY-MM-DD-H:i:S.log
... avec bien sûr le nom de fichier étant exemple.com.2008-09-27-11: 21: 30.log
Je mettrais ensuite ceci dans crontab pour fonctionner quotidiennement.
La solution
La méthode verbeuse:
grep 'example.com' www_log > `date +example.com.%Y-%m-%d-%H:%M:%S.log`
La méthode laconique:
grep 'example.com' www_log > `date +example.com.%F-%T.log`
Autres conseils
grep 'example.com' www_log > example.com.$(date +%F-%T).log
Voici un autre moyen que j'utilise habituellement:
grep 'example.com' www_log > example.com.`date +%F-%T`.log
Les backticks sont une forme de substitution de commande. Une autre forme consiste à utiliser $ ():
$(command)
qui est identique à:
`command`
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow