stderr를 stdout으로 리디렉션한 다음 파이프(apt-cache)하는 방법

stderr를 stdout으로 리디렉션한 다음 파이프(apt-cache)하는 방법

stderr리디렉션 하려고 하는데 여기에 기본적인 내용이 누락된 것 같습니다 stdout.pipe

파이프에 대한 명령 및 출력:

$ apt-cache show contractor
N: Can't select versions from package 'contractor' as it is purely virtual
N: No packages found

Grep이 작동하지 않습니다. 다음으로 출력해야 합니다 stderr.

$ apt-cache show contractor |grep virtual

stderr좋습니다. 다음으로 리디렉션하겠습니다 stdout.

$ apt-cache show contractor 2>&1 |grep virtual

아니요, 작동하지 않습니다. 왜죠?

명령이 사용하는 파일 설명자를 확인합니다.

$ apt-cache show contractor 1>t ;cat t

$ apt-cache show contractor 2>t ;cat t
N: Can't select versions from package 'contractor' as it is purely virtual
N: No packages found

사용 중인지 확인하세요 stderr.

리디렉션 순서와 관련이 있나요?

$ apt-cache show contractor |cat 2>&1

아니요

$ apt-cache show contractor 2>&1 |cat 2>&1

아니요

그때 stderr까지 리디렉션하는 방법은 무엇입니까 ?stdoutpipe

답변1

apt-cache이는 표준 출력이 tty가 아닌 경우 "조용해"지고 행을 인쇄하지 않기 때문입니다 .

"Quietness"를 0으로 설정하여 이 결정을 무시할 수 있습니다.

$ apt-cache -q=0 show contractor 2>&1 | grep virtual
N: Can't select versions from package 'contractor' as it is purely virtual

관련 정보