我需要将今天生成的文件的大小与昨天的大小进行比较(每天生成一个新文件 - 大小很大)
=AVERAGEIF(Range,"<>"&0)
最好的方法是什么(编码新手)? 我发现这个代码,但我认为这对闰年等不太好。
fileA_20150716.log
fileB_20150717.log
fileC_20150718.log
fileD_20150719.log
答案 0 :(得分:0)
您可以从此Bash脚本开始并根据需要进行扩展:
f <- function(x) x^2
g <- function(y) y^2
z <- function(x,y) f(x)*g(y)
它不使用日期,而是比较相邻的日志文件对。您可以将#!/bin/bash
A=(*.log)
for ((i = 0; i < ${#A[@]} - 1; i++)); do
diff "${A[i]}" "${A[i + 1]}"
done
命令替换为更适合您的命令。
答案 1 :(得分:0)
我需要将今天生成的文件的大小与昨天的文件大小进行比较
不是从今天的日期构建昨天文件的文件名(这很棘手,如你所知),为什么不简单地查找具有正确名称(模式)和<的文件? em>昨天的修改时间?这更容易:
TODAYSSIZE=`find . -name "file*\.log" -daystart -mtime 0 -printf "%s"`
YESTERSIZE=`find . -name "file*\.log" -daystart -mtime 1 -printf "%s"`
然后使用您需要做的任何值。
根据您的要求调整搜索路径(.
),文件名模式(file*\.log
)和显示的实际尺寸格式(%s
)。
假设你有GNU find
可用; AIX附带的find
不会-printf
。不过,您仍然可以使用它来获取文件名:
TODAYSFILE=`find . -name "file*\.log" -daystart -mtime 0`
YESTERFILE=`find . -name "file*\.log" -daystart -mtime 1`
然后以您喜欢的方式检索文件大小(ls -s $TODAYSFILE
或其他)。
请注意find
递归地工作,即它也会在子目录中找到日志文件。 GNU find
可以告诉-maxdepth 1
以避免这种情况,AIX find
不能。{/ p>
答案 2 :(得分:0)
#!/usr/bin/bash
a=$(date +%Y%m%d)
b=$(date -d yesterday +%Y%m%d)
for f in *$a.log
do
wc $f ; wc ${f/$a/$b}
done