博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell基础(六)--字符串和数组
阅读量:6293 次
发布时间:2019-06-22

本文共 1833 字,大约阅读时间需要 6 分钟。

对文本处理,单独用shell来处理还是比较薄弱。所以shell就引用了awk and sed这两个命令。我们今天不说这个

一 字符串

  字符串是shell编程中最常用最有用的数据类型,因为你定义一个变量,存的值就是一个字符串,字符串可以用单引号,也可以用双引号,也可以不用引号

A=1name="lottu"feel='happy'

  说下字符串的处理

1. 拼接字符串       echo "${name} feels ${feel}"    #即空格就是字符串拼接 2. 求字符串长度       echo ${#name}         echo `expr length $name`       echo ${name} | awk '{print length($0)}'     #awk里面拥有丰富的函数,所以可以完全借鉴于它。 3.截取字符串        echo ${name:1:4}                    #输出ottu。下标是从0开始;这跟其他语言不一样。        expr substr "$name" 1 4        echo ${name}|awk '{print substr($0,2,4)}'  #输出为ottu。 4. index检索子串--返回第一次出现的位置;若找不到,则返回1         expr index "$name" lo 5. match匹配子串 --返回匹配到子串的长度;若找不到,则返回0        expr match "$name" lott  #返回4         6. 替换子串${string/substring/replacement}表示仅替换一次substring相配字符,而${string//substring/replacement}表示为替换所有的substring相配的子串         str="you and me,go your home.OK? you"          echo ${str/you/tom}                      echo ${str//you/tom}

 总结:灵活运用命令expr,以上实现效果都可以用awk来实现。本人对awk很熟悉;大家有什么文本处理的问题,可以找我。


 

  二 数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0

1. 定义数组    在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:    array_name=(value1 ... valuen)    vname=("lottu" "li0924" "0924" "tom")2. 打印数组值    echo ${vname[2]} #输出"0924" ;大家理解?因为shell数组的下标是从0开始。    使用使用@ 或 * 可以获取数组中的所有元素    echo ${vname[@]}  or echo ${vname[*]}3.获取数组长度    其实跟字符串长度差不多    echo ${#vname[*]} #输出为4;数组的个数    求数组某个下标的值的长度   echo ${#vname[1]}  #输出为64. 删除数组    unset命令    unset varray_name[n]  :删除第n+1个    unset varray_name       删除数组 varray_name5. 获取部分数组--格式:${数组名[@或*]:起始位置:长度}  $ vname=("lottu" "li0924" "0924" "tom")  $ echo ${vname[*]:0:2}     lottu li0924 6. 扩展read 命令来定义数组使用参数a   $ read -p "please input your number: " -a num     please input your number: 1 5 6 8   $ echo ${num[*]}    1 5 6 8

 

转载于:https://www.cnblogs.com/lottu/p/3986528.html

你可能感兴趣的文章
SpringBoot 整合Redis
查看>>
2014上半年大片早知道
查看>>
Android 6.0指纹识别App开发案例
查看>>
正文提取算法
查看>>
轻松学PHP
查看>>
Linux中的网络监控命令
查看>>
this的用法
查看>>
windows下安装redis
查看>>
CentOS7 yum 安装git
查看>>
启动日志中频繁出现以下信息
查看>>
httpd – 对Apache的DFOREGROUND感到困惑
查看>>
分布式锁的一点理解
查看>>
idea的maven项目,install下载重复下载本地库中已有的jar包,而且下载后jar包都是lastupdated问题...
查看>>
2019测试指南-web应用程序安全测试(二)指纹Web服务器
查看>>
树莓派3链接wifi
查看>>
js面向对象编程
查看>>
Ruby中类 模块 单例方法 总结
查看>>
jQuery的validate插件
查看>>
5-4 8 管道符 作业控制 shell变量 环境变量配置
查看>>
Enumberable
查看>>