良许Linux教程网 干货合集 shell脚本:打印文本中字符数不大于6的单词

shell脚本:打印文本中字符数不大于6的单词

本篇文章重点为大家分享一下shell脚本面试题,题目:通过shell脚本打印文本中字符数不大于6的单词。

u=220293735,3182955730&fm=26&gp=0

for循环打印下面这句话中字母数不大于6的单词; I am oldboy teacher welcome to oldboy traning class

方法1:

使用数组a,存放文本里的单词;for循环轮询,if判断每一个单词的长度,打印小于等于6的单词;

[root@localhost anglea]# cat 1.sh
\#!/bin/bash
\#written by linuxidc@2015-10-28
a=(I am oldboy teacher welcome to oldboy traning class)
for((i=0;i${#a[*]};i++))
do
 if [ ${#a[$i]} -le 6 ]
  then
   echo ${a[$i]}
 fi
done

上面的if判断还可以使用expr length判断字符串长度;

[root@localhost anglea]# cat 1.sh
\#!/bin/bash#written by linuxidc@2015-10-28
a=(I am oldboy teacher welcome to oldboy traning class)
for((i=0;i${#a[*]};i++))
do
 if [ `expr length ${a[$i]}` -le 6 ]
 then
   echo ${a[$i]}
 fi
done

数组的另一种方法:直接读取数组里的元素,判断元素的长度;

arr=(I am oldboy teacher welcome to oldboy traning class)
for file in ${arr[@]}
do
 if [ ${#file} -le 6 ]
 then
   echo $file
 fi
done

执行结果如下:

[root@localhost anglea]# sh 1.sh
I
am
oldboy
to
oldboy
class

方法2:

使用for循环轮询单词,使用wc -L判断单词长度,并做判断;

[root@localhost anglea]# cat 2.sh
\#!/bin/bash#written by linuxidc@2015-10-28
for f in I am oldboy teacher welcome to oldboy traning class
do
 [ `echo $f|wc -L` -le 6 ] && echo $f
done

执行结果如下:

[root@localhost anglea]# sh 2.sh
I
am
oldboy
to
oldboy
class

方法3:awk的length用法

[root@localhost anglea]# echo "I am oldboy teacher welcome to oldboy traning class"|awk '{for(i=1;i
I
am
oldboy
to
oldboy
class

还有更好的方法,欢迎大家共同学习与分享。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部