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

简介:

题目来源于老男孩空间日志,是一家企业面试题,题目如下:

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


方法1:

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

1
2
3
4
5
6
7
8
9
10
11
[root@localhost anglea] # cat 1.sh
#!/bin/bash
#written by mofansheng@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判断字符串长度;

1
2
3
4
5
6
7
8
9
10
[root@localhost anglea] # cat 1.sh
#!/bin/bash#written by mofansheng@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


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

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


执行结果如下:

1
2
3
4
5
6
7
[root@localhost anglea] # sh 1.sh
I
am
oldboy
to
oldboy
class


方法2:

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

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


执行结果如下:

1
2
3
4
5
6
7
[root@localhost anglea] # sh 2.sh
I
am
oldboy
to
oldboy
class


方法3:awk的length用法

1
2
3
4
5
6
7
[root@localhost anglea] # echo "I am oldboy teacher welcome to oldboy traning class"|awk '{for(i=1;i<=NF;i++) if(length($i)<=6) print $i}'
I
am
oldboy
to
oldboy
class


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





本文转自 模范生 51CTO博客,原文链接:http://blog.51cto.com/mofansheng/1707845,如需转载请自行联系原作者

目录
相关文章
|
1天前
|
分布式计算 Hadoop Shell
使用shell脚本实现自动SSH互信功能
使用shell脚本实现自动SSH互信功能
10 1
|
2天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
10 1
|
3天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
3天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
4天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
21 5
|
5天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
5天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
5天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
13 3
|
11天前
|
弹性计算 运维 监控
|
11天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0