我正在做一些数据验证。基本上,我有一个文件列表,我想确保它们是一致的。要使文件保持一致,它们需要匹配出现次数。
grep -c ValidId file.????.txt
wc -l < output.????.txt
如果它们都匹配,我想创建一个完成文件,所以我不必再次重新检查。这将是我的Makefile中用于数据验证的例程。
我将如何做到这一点?
答案 0 :(得分:2)
模式匹配%
可用于规则中的多个依赖项。可以使用它来跟踪一致的文件,因此运行make和更正错误只会检查不一致的文件:
FILES=$(wildcard file.????.txt)
RES_FILES=$(FILES:file.%=.result.%)
all: $(RES_FILES)
.result.%.txt: file.%.txt output.%.txt
if [ `grep -c ValidId < file.$*.txt` -eq \
`wc -l < output.$*.txt` ]; then \
touch $@ ; \
fi
clean:
@rm -f $(RES_FILES)