한 파일에서 다른 파일로 패턴을 검색하고 각 패턴의 결과를 새 파일에 저장하는 방법

한 파일에서 다른 파일로 패턴을 검색하고 각 패턴의 결과를 새 파일에 저장하는 방법

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

그러면 빈 파일(일치하지 않는 패턴)도 제거됩니다.

관련 정보