2016-07-18 2 views
0

일부 데이터 유효성 검사를 수행하고 있습니다. 기본적으로 파일 목록이 있으며 일관성이 있는지 확인하려고합니다. 파일이 일관성을 유지하려면 발생 횟수를 일치시켜야합니다.에서 파일 내용 확인

grep -c ValidId file.????.txt 
wc -l < output.????.txt 

둘 모두 일치하면 다시 확인하지 않아도 완료 파일을 만들고 싶습니다. 이것은 데이터 검증을위한 Makefile의 루틴입니다.

어떻게해야합니까?

+0

하나의 파일에 일관성있는 파일 쌍? 또는 각각의 일관된 파일 쌍 ('file.foo.txt','output.foo.txt')에 그런 파일 ('foo.done')을 원합니까? – Beta

+0

유효성 검사를하고 있습니다. file.foo.txt를 생성하는 데 오랜 시간이 걸립니다. output.foo.txt는 생성하기 쉽습니다. file.foo.txt의 "ValidId"수가 같은지 비교하고 싶습니다. 그렇다면 내 결과가 좋다는 것을 안다. – NinjaGaiden

답변

2

패턴 일치 %은 규칙의 여러 종속성에서 사용될 수 있습니다. 일관성있는 파일을 추적하여 일관성없는 파일 만 확인하고 오류를 수정하고 실행하면 일관성있는 파일을 추적 할 수 있습니다.

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 [email protected] ; \ 
    fi 

clean: 
    @rm -f $(RES_FILES)