¿Cómo puedo escribir un script de shell para dirigir datos grep a un nombre de archivo basado en fecha?
Pregunta
Básicamente quiero hacer esto:
grep 'example.com' www_log > example.com.YYYY-MM-DD-H:i:S.log
... con, por supuesto, el nombre de archivo es ejemplo.com.2008-09-27-11:21:30.log
Luego pondría esto en crontab para que se ejecute a diario.
Solución
El método detallado:
grep 'example.com' www_log > `date +example.com.%Y-%m-%d-%H:%M:%S.log`
El método conciso:
grep 'example.com' www_log > `date +example.com.%F-%T.log`
Otros consejos
grep 'example.com' www_log > example.com.$(date +%F-%T).log
Aquí hay otra forma, que generalmente uso:
grep 'example.com' www_log > example.com.`date +%F-%T`.log
Los backticks son una forma de sustitución de comandos. Otra forma es usar $ ():
$(command)
que es lo mismo que:
`command`
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow