在尝试合并apt-get search
和的输出时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 在下面的评论中给出的脚本工作正常,但有人可以解释一下上面的脚本有什么问题吗