"apt-get 검색"과 "apt-get 정책" 병합

"apt-get 검색"과 "apt-get 정책" 병합

apt-get searchsum 의 출력을 병합하는 동안 apt-get policy다음 스크립트를 만들었습니다 .

apt-cache search zsh | \
tee file1 | awk '{ print $1 }' | \
while read file; do apt-cache policy $file | awk 'FNR==2{print $0}' >> file2; done; \
paste file1 file2 | cat

논리적으로는 맞는 것 같지만 출력이 잘못되었습니다. 명령별로 출력 명령을 테스트하기 시작했고 wc파일이 file2반환되는 것을 확인했습니다.1353 lines

apt-cache search zsh | \
tee file1 | awk '{ print $1 }' | \
while read file; do apt-cache policy $file | awk 'FNR==2{print $0}' >> file2; done; \
cat file2 | wc -l

하지만 wc첫 번째 줄이 반환된 직후123 lines

apt-cache search bash | wc -l

따라서 while루프는 1353 lines출력을 얻지 못하지만 해당 출력을 처리합니다.

나는 이런 결과를 기대하고있다

zgen - Lightweight plugin manager for ZSH inspired by Antigen    Installed: (none)
zplug - next-generation plugin manager for zsh                   Installed: (none)
zsh - shell with lots of features                                Installed: <version>
.
.
.

내 스크립트 논리에 문제가 있나요?

내가 어디서 실수를 했나요?

편집: 아래 주석에서 Steeldriver가 제공한 스크립트는 잘 작동하지만 누군가 위 스크립트의 문제점을 설명해 주실 수 있습니까?

관련 정보