file1에서 file2의 패턴을 검색하고 각 패턴에 대한 결과를 새 파일에 저장하고 싶습니다. 파일 2에서 검색하려는 모든 패턴에 대해 이 작업을 수행하고 다음을 사용하여 결과를 저장하는 방법을 알고 있습니다.
grep -wFf file1 file 2 > outputfile
그런데 문제는 각 모드마다 별도의 출력 파일을 만들고 싶다는 것입니다.
어떻게 해야 합니까?
답변1
유틸리티 grep
에서는 기본적으로 이 작업을 수행할 수 없으므로 이 경우 루프를 사용해야 합니다.
다음과 같은 것이 트릭을 수행할 것입니다.
i=0
while read -r pattern; do
outfile="data-$(( i++ )).out"
fgrep -w "$pattern" data.in >$outfile
if [ ! -s $outfile ]; then
rm $outfile
fi
done <patterns.in
그러면 빈 파일(일치하지 않는 패턴)도 제거됩니다.