Linux脚本练习之script054-对于按单词出现频率降序排序。

script054

题目

对于按单词出现频率降序排序。

分析

本题考查的知识点:

  • echo 命令
  • tr 命令
  • sort 命令
  • uniq 命令
  • sort 命令

思路:

  • 先将英语句子由行拆成列,即用换行符替换掉原来分隔用的空格字符,使用 tr 命令。
  • 为了避免统计单词失误,所以要删除掉单词中的标点符号,使用 tr -d "[:punct:]"
  • 接着对单词进行排序,让重复单词相邻排列。
  • 再使用 uniq -c 命令统计每个单词的出现次数。
  • 最后使用 sort -nr 命令对出现次数按数字倒序排列。

在这里插入图片描述

脚本

#!/bin/bash

####################################
#
# 功能:对于按单词出现频率降序排序。
#
# 使用:直接调用脚本,不需要任何参数
#
# 作者:lcl100
#
# 日期:2022-06-04
#
####################################


# 变量,记录句子
words="No. The Bible says Jesus had compassion2 on them for He saw them as sheep without a shepherd. They were like lost sheep, lost in their sin. How the Lord Jesus loved them! He knew they were helpless and needed a shepherd. And the Good Shepherd knew He had come to help them. But not just the people way back then. For the Lord Jesus knows all about you, and loves you too, and wants to help you."

# 先将空格换成换行符,再去除掉标点符号,再排序,再统计每个单词的出现次数,再降序排序
echo "$words" | tr -s " " "\n" | tr -d "[:punct:]" | sort | uniq -c | sort -nr

测试

执行 ./script054.sh 调用脚本。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值