我有個問題。我想製作一個 bash 腳本,每次運行腳本時都會將資料寫入新列。例如,每週我都會檢查每個資料夾中有多少文件。
find /home/user/admin/stuff/ -mtime -7 | wc -l >> results.xls
find /home/user/admin/old/ -mtime -7 | wc -l >> results.xls
我每週一運行腳本,但我不想覆蓋數據。我需要新資料位於新列。
例如:
Week1 Week2 Week3 ...
2 3 5
1 2 3
答案1
#!/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
答案2
您可以透過這種方式獲得輸出。
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
這只是一個例子。您可以按照自己的方式修改它。