bash - 循环输出排序并显示
问题描述
我有一个循环遍历目录的脚本,并为每个文件计算某个单词的迭代次数。当脚本运行时,每个文件的迭代次数都会输出到屏幕上。但是,我想在输出之前先对列表进行排序。
我知道我需要输出到某个地方进行排序,但我不确定如何实现这一点。在非脚本语言中,我可能会将循环的输出放入一个数组中,但我认为这不是 Bash 应该做的。
for f in /home/reviews_folder/*
do
tr -s ' ' '\n' < $f | grep - c '<Author>'
done
我认为我不会将排序放入循环中,那么我将如何在循环和排序之间创建管道?
解决方案
循环是一个复合命令,循环体中的每个命令都从循环继承其标准输出。这意味着您可以简单地将循环本身通过管道传输到sort
.
for f in /home/reviews_folder/*; do
tr -s ' ' '\n' < "$f" | grep -c '<Author>'
done | sort
推荐阅读
- python - 如何先按 id 对 python 列表进行分组,然后按发布日期分组
- python - numpy:如何将函数应用于数组的每一行
- sql - 获取更改您的数据库的电脑或笔记本电脑的 mac id。SQL 服务器
- php - 如何使用 php 连接到 AWS RDS?
- informatica - 看不到创建 Powercenter 存储库服务或集成服务的选项
- django - Elastic Beanstalk 不加载 Django 管理静态文件
- mysql - 失去对带有表连接的 INFORMATION_SCHEMA.COLUMNS 表的查询
- c - 不使用双指针交换字符串
- azure - 微软认知服务人脸 API
- javascript - 将无操作或空处理程序绑定到 Vue 事件处理程序?