每日一道shell练习(10)——统计字符数

1. 习题

将下面这句话中字符数在6以内的单词打印出来:

Bash also interprets a number of multi-character options .

2. 习题分析

思路:用for循环将每个单词取出,才能单独统计。for循环的分隔符有空格、tab键和回车键,刚好这句话的分隔符是空格键。

3. 脚本

#!/bin/bash
line=‘Bash also interprets a number of multi-character options .‘
sum=0
for s in $line
do
  n=`echo $s | wc -c`
  if [ $n -lt 7 ];then
    echo $s
    sum=$[sum+1]
    #sum=`expr $sum + 1`
  fi
done

解释:用wc -c 命令统计单词的字符数,它会默认添加一个空格,所以if条件里就用7来做条件了。我在写脚本的时候,加了一个sum统计字符数在6个以内的单词的数量。大家要注意shell脚本里的算术运算,我这里给了两种方式来计算sum的加法运算,以后遇到类似的情况都可以借鉴。

原文地址:http://blog.51cto.com/hellocjq/2323289

时间: 2024-08-01 01:51:13

每日一道shell练习(10)——统计字符数的相关文章

29:统计字符数

29:统计字符数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多. 输入 输入包含一行,一个字符串,长度不超过1000. 输出 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开.如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符. 样例输入 abbccc 样例输出 c 3 来源 1744 1 #include<iostream> 2 #

C语言统计字符数

一段统计字符数的代码及分析. 先贴代码: #include<stdio.h> #include<string.h>//提供memset函数原型. int main() { char S[80]; int C[26],length;//一段声明,即字符数组S,整型数组C,和整型length. memset(C,0,sizeof(C));//将C清零,至于为什么不把字符数组清零,稍后有一段实验过程. for(int i=0;i<=3;i++)//循环4次,读入4行字符串. { g

每日一道shell练习(06)——检测端口服务

1. 题目 写一个脚本,判断本机的80端口(假设服务为httpd)是否开启着,如果开启着就什么都不做,如果发现端口不存在,那么重启一下httpd服务,并发邮件通知你自己.脚本写好后,每分钟执行一次,也可以写一个死循环的脚本,30S检查一次. 2. 习题分析 首先,我们要区分要求,这里的要求是检测80端口是否在监听,而不是检测httpd服务是否运行,虽然两者有一定的联系,但并不是对等的关系.检测端口状态用 netstat -lntp 命令.如果要求检测远程主机的端口状态,则用一下的命令: nmap

shell 截取日志 统计链接数 统计日志ip

按时间段获取日志 sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:50/p' localhost_access_log.2015-11-10.txt > /tmp/acc.www.log  sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:50/p' localhost_access_log.2015-11-10.txt |head -3  sed -n '/22\/Dec\/2015:00/,/22\/Dec\/2015:5

每日一道shell脚本练习(01)

0. 引言 准备开一个新坑,每天更新一道shell练习.因为shell脚本属于那种不练习就会生疏,甚至忘记的技能,所以,为了对抗遗忘阻力,我只能不断加强练习了. 1. 第一天练习题目 [题目]请按照这样的日期格式(xxxx-xx-xx)每日生成一个文件,例如今天生成的文件为2018-04-08.log,并且把磁盘的使用情况写到这个文件中,不用考虑cron,仅仅写脚本即可. [分析]第一点,要明白 linux 命令 date 的用法,打印"xxxx-xx-xx"这样的时间格式用date

Openjudge-计算概论(A)-统计字符数

描述: 判断一个由a-z这26个字符组成的字符串中哪个字符出现的次数最多输入第1行是测试数据的组数n,每组测试数据占1行,是一个由a-z这26个字符组成的字符串每组测试数据之间有一个空行,每行数据不超过1000个字符且非空输出n行,每行输出对应一个输入.一行输出包括出现次数最多的字符和该字符出现的次数,中间是一个空格.如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符 样例输入 2 abbccc adfadffasdf 样例输出 c 3 f 4思路:从头到尾扫字符串,用一个

每日一道shell练习(03)

1 . 习题 写一个脚本计算linux系统所有进程占用内存大小的和 2. 习题分析 2.1.第一个问题,在哪里收集进程的数据 用top或者ps都可以获取每个进程的内存使用大小.获得大小之后,就可以通过一个循环计算它们的和了. 2.2. ps 命令的问题 通过累加 "ps aux" 命令显示的 RSS 列来统计全部进程总共占用的物理内存大小,这是不对的.因为,RSS(resident set size)表示常驻内存的大小,但是由于不同的进程之间会共享内存,所以把所有进程RSS进行累加的方

4.2 例题: 统计字符数 poj2247

问题描述 判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多 输入:第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组 成的字符串,每组测试数据之间有一个空行,每行数据不超过 1000 个字符且非空 输出:n 行,每行输出对应一个输入.一行输出包括出现次数最多的字符和该字符出现的 次数,中间是一个空格. 如果有多个字符出现的次数相同且最多,那么输出 ascii 码最小的那一个字符. 输入样例 2 abbccc adfadffasdf

每日一道shell练习(04)

1. 习题 设计一个脚本,监控远程的一台主机(假设 ip地址是110.110.110.114)的存活状态,当发现宕机时发一封邮件给你自己. 提示: 你可以使用 ping 命令 : ping -c 10 110.110.110.114 脚本可以搞成死循环. 2. 习题分析 其实这中需求并不困难,题目也给出了思路.关键是确定一个阈值,当检测到结果符合阈值,就触发警告,发送警告邮件. 我们可以先在主机上尝试执行一下 ping -c 命令: [[email protected] work]# ping