tengo un problema. Quiero crear un script bash que escriba datos en una nueva columna cada vez que ejecuto el script. Por ejemplo, cada semana compruebo cuántos archivos tengo en cada carpeta.
find /home/user/admin/stuff/ -mtime -7 | wc -l >> results.xls
find /home/user/admin/old/ -mtime -7 | wc -l >> results.xls
Ejecuto el script todos los lunes, pero no quiero sobrescribir datos. Necesito que los nuevos datos estén en una nueva columna.
Por ejemplo:
Week1 Week2 Week3 ...
2 3 5
1 2 3
Respuesta1
#!/bin/bash
output_file=/tmp/results.xls
[ ! -f ${output_file} ] && echo -e "\n\n\n" > ${output_file}
stuff_count=$(find /home/user/admin/stuff/ -mtime -7 | wc -l)
old_count=$(find /home/user/admin/old/ -mtime -7 | wc -l)
now=$(date +%y%m%d)
sed -i "1 s/$/\t$now/" /tmp/out.txt
sed -i "2 s/$/\t$stuff_count/" /tmp/out.txt
sed -i "3 s/$/\t$old_count/" /tmp/out.txt
Respuesta2
Puede tener una salida de esta manera.
week="" week=`date` echo $week >> results.xls
find /home/user/admin/old/ -mtime -7 | wc -l >> results.xls
# cat results.xls
Thu Oct 27 14:16:29 IST 2016
0
2
Este es sólo un ejemplo. Puedes modificarlo a tu manera.