'추가' 줄을 피하기 위해 grep 명령을 조정하십시오.

'추가' 줄을 피하기 위해 grep 명령을 조정하십시오.

압축된 파일에서 일부 텍스트를 찾아야 합니다. 저는 시그윈을 사용하고 있습니다. 일부 압축 파일이 비어 있습니다. 분명히 나는 ​​'빈 zip 파일'에 대한 '시끄러운' 정보를 전혀 갖고 싶지 않습니다. 예:

find . -iname '*.zip' -print -exec unzip -l {} \; |grep -i vbs

vbs내가 찾고 있는 문자열은 어디에 있나요?

문제는 내가 찾고 있는 것을 반환하지만 다음과 같은 줄로 많은 노이즈를 반환한다는 것입니다.

C\ProgramData\ABC\DEF\VBScripts\OutputArchiveFiles.vbs
warning [/z/XYZ/Backup/123/456/Backup Set 1/Backup Files 1/Backup files 2.zip]:  zipfile is empty

'zipfile is 비어 있음'이라는 줄을 보고 싶지 않습니다.

나는 그것을 파이프하려고 시도했지만 |grep -v 'zipfile is empty'여전히 해당 라인도 출력합니다.

내 질문: '빈' 줄을 인쇄하지 않고 내가 찾고 있는 줄만 볼 수 있는 방법은 무엇입니까? 즉, vbs?

답변1

이러한 추가 라인은 아마도 stderr스트림에 있을 것입니다. 당신은 그들이 있는지 확인하여 테스트할 수 있습니다별도의 파일로 리디렉션(예 command 2> error.txt: )

기본적으로 다음을 실행합니다.

find . -iname '*.zip' -print -exec unzip -l {} \; 2> error.txt |grep -i vbs 

문제가 해결되면 다음 error.txt으로 교체할 수 있습니다 /dev/null(일부 Cygwin 버전에서는 작동하지 않을 수 있음).

관련 정보