AI智能
改变未来

Shell笔记1-字符串处理


字符串处理

  1. 计算字符串长度

    ${#string}

    例:

    ~$ echo $var6/usr/local/sBIN:/usr/local/BIN:/usr/sBIN:/usr/BIN:/sBIN:/BIN:/usr/games:/usr/local/games:/snap/BIN~$ echo ${#var6}98

    expr length “$string”

    例:

    ~$ expr length \"$var6\"98
  2. 获取字符索引位置

    expr index “$string” substr

    例:

    ~$ expr index \"$var1\" start7

    :获取时将查找的字符串切割成字符来找

    例:

    ~$ expr index \"$var1\" uniq2
  3. 获取子串长度

    expr match “$string” substr

    ~$ expr match \"$var1\" Quick5

    :从头开始匹配,如果取其中一节是匹配不到的

    ~$ expr match \"$var1\" app0~$ expr match \"$var1\" is0
  4. 抽取字符串中的子串

    ${string:position}

    例:

    ~$ var1=\"mysql nginx tomcat go java php\"~$ echo ${var1:10}x tomcat go java php

    ${string:position:length}

    例:

    ~$ echo ${var1:10:5}x tom

    ${string: -position}

    例:

    ~$ echo ${var1: -10}o java php~$ echo ${var1: (-10)}o java php~$ echo ${var1: -10:5}o jav

    expr substr $string $position $length

    例:

    ~$ expr substr \"$var1\" 10 5nx to

    :使用${…时索引是从0开始计数的,expr是从1开始计数的

    ~$ echo ${var1:10:5}x tom~$ expr substr \"$var1\" 10 5nx to

练习

需求描述:

变量string=“Bigdata process framework is Hadoop , Hadoop is an open source project” 执行脚本后,打印输出string字符串变量,并给出用户以下选项:

(1)、打印string长度

(2)、删除字符串中所有的Hadoop

(3)、 替换第一个Hadoop为Mapreduce

(4)、替换全部Hadoop为Mapreduce

用户输入数字1|2|314, 可以执行对应项的功能;输入q|Q则退出交互模式.

思路分析:

1.将不同功能模块划分,并编写函数

​ function print_tips

​ function len_of_string

​ function del_hadoop

​ function rep_hadoop_mapreduce_first

​ function rep_hadoop_mapreduce_all

2.实现第一步所定义的功能函数

function print_tips{echo \"**********************************\"echo \"(1)、打印string长度\"echo \"(2)、删除字符串中所有的Hadoop\"echo \"(3)、 替换第一个Hadoop为Mapreduce\"echo \"(4)、替换全部Hadoop为Mapreduce\"echo \"**********************************\"}function len_of_string{echo \"${#string}\"}function del_hadoop{echo \"${string//Hadoop/}\"}function rep_hadoop_mapreduce_first{echo \"${string/Hadoop/Mapreduce}\"}function rep_hadoop_mapreduce_all{echo \"${string//Hadoop/Mapreduce}\"}

3.程序主流程的设计

print_tipsecho \"string=$string\"#判断输入主程序while truedoechoread -p \"Pls input your choice(1|2|3|4|q|Q):\" choicecase $choice in1)len_of_string;;2)del_hadoop;;3)rep_hadoop_mapreduce_first;;4)rep_hadoop_mapreduce_all;;q|Q)exit;;*)echo \"Error,input only in {1|2|3|4|q|Q}\";;esacdone
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Shell笔记1-字符串处理