计算字符串长度

  • ${#string}
  • expr length "$string"
v1="i love you"
len=`expr length "$v1"`
echo len
复制代码

获取子串中字符在字符串中的位置

  • expr index "$string""$subString"
v1="i love you"
v2="ou"
subIndex=`expr index "${v1}" "${v2}"`
echo $subIndex
# 4# 注意: 他其实是找子串中每个字符的其实位置,返回最前面的那个
复制代码

获取子串从头开始匹配的长度

  • expr match "$string" "$substr"
v1="i love you"
v2="ou"
v3="i love"
v4="i losadf"
v5="i lov.*"
subLen1=`expr match "$v1" "$v2"`
subLen2=`expr match "$v1" "$v3"`
subLen3=`expr match "$v1" "$v4"`
subLen4=`expr match "$v1" "$v5"`
echo $subLen1 $subLen2 $subLen3 $subLen4
# 0 6 0 10
复制代码

抽取子串

# 0123456789
# iloveyou.
v1="iloveyou."
# 从第零位开=始
echo ${v1:0}
# iloveyou.# 从第三位开始
echo ${v1:3}
# veyou.# 从右边开始匹配 倒数第三个开始 注意冒号后面有空格 从右边-1开始数
echo ${v1: -3}
# ou.echo ${v1: -3:1}
# o# 从左边开始匹配
echo ${v1:(-3)}
# ou.# 从第2位开始 截取3个
expr substr "$v1" 2 3
# lov# 注意expr 索引从1开始 ${}是从0开始
复制代码

练习题

给定一个字符串变量 string=“You are an ugly boy! I'm a handsome boy!” 要求启动脚本后 1.输入1 打印字符串长度 2.输入2 删除ugly 把 an 变成 a 3.输入3 替换 'm 为 “ am” . 4.输入4 替换 ! 为 .

#!/bin/bash

string="You are an ugly boy! I'm a handsome boy!"function print_tips
{echo "********************************"echo "1.输入1 打印字符串长度."echo "2.输入2 删除ugly 把 an 变成 a"echo "3.输入3 替换 'm 为 “ am” ."echo "4.输入4 替换 ! 为 ."echo "********************************"
}
function len_of_string
{echo "${#string}"
}function del_ugly_and_change_an_to_a
{str="${string/ ugly/}"echo "${str/an/a}"
}function replace_m_am
{echo "${string//\'m/ am}"
}function replace_exclamation_mark_to_dot
{echo "${string//!/.}"
}while true
doecho "「string = ${string} 」"echoprint_tipsread -p "Please input your choice (1|2|3|4|q)" choicecase $choice in1)len_of_string;;2)del_ugly_and_change_an_to_a;;3)replace_m_am;;4)replace_exclamation_mark_to_dot;;q|Qexit;;*)echo "Error, Input only in (1|2|3|4|q)";;esac
done复制代码

转载于:https://juejin.im/post/5d0508c36fb9a07ed2246c18

Shell编程—【01】shell中常用的字符串操作相关推荐

  1. shell编程系列7--shell中常用的工具find、locate、which、whereis

    shell编程系列7--shell中常用的工具find.locate.which.whereis1.文件查找之find命令语法格式:find [路径] [选项] [操作]选项 -name 根据文件名查 ...

  2. c语言中空格字符怎么表示_C语言中常用的字符串操作函数

    作者:陈太浪 出处:https://home.cnblogs.com/u/TomHe789/ C语言中提供了许多的字符串操作函数,常见的字符串操作函数有以下几种: 1.求字符串长度的函数 原型函数:s ...

  3. hive同时不包含一些字符串_Hive中常用的字符串操作

    一.准备 创建虚表: echo "X" >> dual.tsv hadoop fs -put dual.tsv '/data//' create table dual( ...

  4. Go语言中常用的字符串操作

    1.len()用来统计一个字符串的长度的(按字节统计一个中文字符在utf-8中是三个字节) 2.[]rune(T type) 将一个字符串转化为切片,可以用于遍历含有中文的字符 3.i,err := ...

  5. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构

    浅谈Linux下shell 编程的for循环常用的6种结构 1. 常用for循环结构 (1) for 变量 in 值1 值2 值3... do 程序块儿 done (2) for 变量 in `命令` ...

  6. shell编程-初始shell及变量

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  7. Shell编程基础---shell的结构、执行及变量

    2019独角兽企业重金招聘Python工程师标准>>> 本文索引: shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量 shell脚本介绍 she ...

  8. shell编程(八) : [shell基础] 处理用户输入

    接上一篇文章shell编程(七) : [shell基础] 使用结构化命令 目录 3.3 处理用户输入 3.3.1 命令行参数 1.位置参数 2.对参数进行测试 3.3.2 特殊参数变量 1.参数个数 ...

  9. Linux之shell编程篇-----Shell 函数和Shell 输入/输出重定向

    ​ 最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! ​ Shell 函数 1. 自定义函数 linux she ...

最新文章

  1. 洛谷P3723 [AH2017/HNOI2017]礼物(FFT)
  2. VBS遍历Excel工作表的方法
  3. 调参侠看过来!两个提高深度学习训练效率的绝技
  4. ubuntu9.10硬盘安装记录一
  5. 蓝桥杯 - 连号区间数(暴力)
  6. 利用Python编写网络爬虫下载文章
  7. Chrome 开发者工具 版本 65 新引入的 Overrides
  8. bluetooth射频已关闭请打开bluetooth射频_希杰大功率射频放大器烧了维修诊断步骤...
  9. html在表格添加下拉按钮,Bootstrap-table 使用说明--如何在表格td里增加一个按钮
  10. 软件测试用例_软件测试用例设计实战场景法
  11. 吴恩达深度学习 —— 3.8 激活函数的导数
  12. python机器学习:朴素贝叶斯分类算法
  13. 通用版工业制程SPC管理系统,源代码分享
  14. GB28181协议实现简介
  15. 华三交换机配置access命令_H3C交换机配置命令大全讲解
  16. 人性观察,人类关系的基石
  17. 详解浏览器中的粘贴事件 paste onpaste 事件
  18. 纯CSS实现图片动画
  19. 乓乓响再度冲刺港股:来自临时及应急服务客户毛利率达70%
  20. c语言检测邮箱地址,C语言实现电子邮件地址验证程序

热门文章

  1. 我来做百科(第二十天) D
  2. 物理IP和浮动IP分别的含义是什么
  3. Windows Server 2008R2使用web方式修改域账户密码
  4. Windows在结构Eclipse+Android4.0开发环境
  5. ligertree内容过多导致崩溃_师傅崩溃了!自身是8年的老师傅,料也没问题,但每次都堵管...
  6. 解决Kali LinuxVI编辑器无法复制问题
  7. PlayMaker GUI跟随布局的使用
  8. 网页截图工具CutyCapt
  9. 编码/解码和进制转化工具hURL
  10. Xamarin.Forms单元控件Cell