对循环和显示的输出进行排序

时间:2019-02-08 14:45:39

标签: bash

我有一个遍历目录的脚本,并且每个文件都计算某个单词的迭代次数。运行脚本时,每个文件的迭代次数将输出到屏幕。但是,我想先对列表进行排序,然后再输出。

我知道我需要输出以在某个地方进行排序,但是我不确定如何实现这一点。在非脚本语言中,我可能会将循环的输出放入数组中,但是我不认为这是使用Bash要做的事情。

for f in /home/reviews_folder/*
do
    tr -s ' ' '\n' < $f | grep - c '<Author>'
done

我认为我不会将排序放入循环中,那么如何在循环和排序之间建立管道?

1 个答案:

答案 0 :(得分:1)

循环是一个复合命令,循环主体中的每个命令都从循环继承其标准输出。这意味着您可以简单地将循环本身传递到sort

for f in /home/reviews_folder/*; do
  tr -s ' ' '\n' < "$f" | grep -c '<Author>'
done | sort