首页 > 解决方案 > 循环输出排序并显示

问题描述

我有一个循环遍历目录的脚本,并为每个文件计算某个单词的迭代次数。当脚本运行时,每个文件的迭代次数都会输出到屏幕上。但是,我想在输出之前先对列表进行排序。

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

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

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

标签: bash

解决方案


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

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

推荐阅读