2010-07-29 5 views
0

인사말,배쉬, 파일 비교. 파일 B에있는 파일 A의 값 제거

하나의 파일 - 하나 또는 그 이상의 greylisting 파일이 있습니다. whitelisting 파일과 비교하여 40에서 50 사이의 값을 비교해야하고 화이트리스트 파일에있는 greylist에서 값을 제거해야합니다.

지금 당장 필자는 각 greylist 값을 가져 와서 허용 목록 파일 (각 값은 1-2000 개)에있는 각 값과 비교하고 일치 항목을 찾으면 greylisting에서 제거합니다. 그런 다음 다음 greylist 값으로 반복합니다.

끔찍하게 비효율적 인 것처럼 보입니다. 그러나 내가 찾고있는 것을 어디에서 시작해야할지 모르겠습니다.

아이디어가 있으십니까?

대단히 감사합니다.

답변

3

이 경우 grep -f을 사용할 수 있습니다. 필요하면 whitelist.txt에없는 greylist.txt에서

grep -F -v -f whitelist.txt greylist.txt 

값은 표준 출력에 다음, 당신은 파일에 그 리디렉션 할 수있다.

  • -F : GREP의

    옵션은 다음과 같이 고정 된 문자열 목록으로 패턴을 해석합니다. (즉, 정규 표현식을 사용하지 마십시오)

  • -v : 일치하지 않는 선을 선택하려면 일치 감을 뒤집습니다.
  • -f : FILE에서 한 줄에 하나씩 패턴을 가져옵니다.

1

파일을 정렬 할 수 있습니까? 이렇게하면 검색을 조기 종료 할 수있어 많은 작업을 빠르게 처리 할 수 ​​있습니다. 특히 두 파일을 정렬 할 수있는 경우에는 각 파일을 한 번만 트래버스하면됩니다 (현재 파일이 어느 파일이든 이동하기 때문에 낮은 값으로).

+0

man grep 당신이 경우에 도움이되지 않습니다 황색, 감사 참조 -하지만 난 그것을 사용할 수있는 다른 곳이있다. – Chasester