字符串

作者: 六月天的安静 | 来源:发表于2017-07-09 22:00 被阅读6次

字符串字符串切片

  • ${#var}: 返回字符串变量var 的长度

  • ${var:offset}: 返回 字符串变量var 中从第offset 个字符后(不包括第offset 个字符)的字符开始,到最后的部分,offset的 的取值在0 到 到 ${#var}-1 之间(bash4.2 后,允许为负值)

  • ${var:offset:number} :返回 字符串变量var 中从第offset个字符 后(不包括第offset 个字符)的字符开始 ,长度为number 的部分

  • ${var: -length} :取字符串的最右侧几个字符
    注意:冒号后必须有一空白字符

  • ${var:offset:-length} :从最左侧跳过offset 字符,一直向右取到距离最右侧lengh 个字符之前的内容

  • ${var: -length:-offset} :先从最右侧向左取到length 个字符开始,再向右取到距离最右侧offset 个字符之间的内容

字符串处理

  • [x] 基于模式取子串

  • ${var#*word} :其中word 可以是指定的任意字符功能:自左而右,查找var 变量所存储的字符串中,第一次出现的word, 删除字符串开头至第一次出现word 字符之间的所有字符

  • ${var##*word} :同上,贪婪模式,不同的是,删除的是字符串开头至最后一次由word 指定的字符之间的所有内容

      示例:
      file="var/log/messages“
      ${file#*/}: log/messages
      ${file##*/}: messages
    
  • ${var%word*} :其中word 可以是指定的任意字符;功能:自右而左,查找var 变量所存储的字符串中,第一次出现的word, 删除字符串最后一个字符向左至第一次出现word 字符之间的所有字符;

      例子:
      file="/var/log/messages"
      ${file%/*}: /var/log
    
  • ${var%%word*} :同上,只不过删除字符串最右侧的字符向左至最后一次出现word 字符之间的所有字符;

      示例:
      url=http://www.magedu.com:80
      ${url##*:} 80
      ${url%%:*} http
    

查找替换

  • ${var/pattern/substr} :查找var 所表示的字符串中,第一次被pattern 所匹配到的字符串,以substr 替换之
  • ${var//pattern/substr}: 查找var 所表示的字符串中,所有能pattern 所匹配到的字符串,以substr 替换之
  • ${var/#pattern/substr} :查找var 所表示的字符串中,行首被pattern 所匹配到的字符串,以substr 替换之
  • ${var/%pattern/substr} :查找var 所表示的字符串中,行尾被pattern 所匹配到的字符串,以substr 替换之

查找并删除

  • ${var/pattern} :删除var 所表示的字符串中第一次被pattern 匹配到的字符串
  • ${var//pattern} :删除var所表示的字符换中所有被pattern所匹配到的字符串
  • ${var/#pattern} :删除var所表示的字符串中所有以pattern为行首所匹配到的字符串
  • ${var/%pattern} :删除var所表示的字符串中所有以pattern为行尾所匹配到的字符串
  • [x]字符大小写转换
  • ${var^^} :把var 中的所有小写字母转换为大写
  • ${var,,} :把var 中的所有大写字母转换为小写

变量赋值

  • ${var:-value} :如果var 为空或未设置,那么返回value ;否则返回var 的值,可省略:

  • ${var:+value} :如果var 不空,则返回value ,否则返回空值

  • ${var:=value} :如果var 为空或未设置,那么返回value ,并将value 赋值给var ;否则返回var 的值

  • ${var:?error_info} :如果var 为空或未设置,那么在当前终端打印error_info ;否则返回var 的值 为脚本程序使用配置文件, 实现变量赋值
    (1) 定义文本文件,每行定义“name=value”
    (2) 在脚本中source 此文件即可
    高级变量用法- 有类型变量
    Shell 变量一般是无类型的,但是bash Shell 提供了declare和typeset 两个命令用于指定变量的型,两个命令是等价的
    declare [ 选项] 变量名

      -r  声明或显示只读变量
      -i  将变量定义为整型数
      -a  将变量定义为数组
      -A  将变量定义为关联数组
      -f  显示此脚本前定义过的所有函数名及其内容
      -F  仅显示此脚本前定义过的所有函数名
      -x  声明或显示环境变量和函数
      -l  声明变量为小写字母 declare –l var=UPPER
      -u  声明变量为大写字母 declare –u var=lower

相关文章

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • C++基础字符串

    字符串的构造 字符串特性描述 字符操作 字符串赋值 字符串连接 字符串比较 字符串查找 字符串替换 字符串删除 字...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • iOS NSString用法总结

    字符串属性 字符串截取 字符串比较 字符串搜索 字符串拼接 字符串基本类型转换 字符串分行,分段 字符串列举(按条...

  • php 字符串常见方法汇总

    字符串拼接 字符串检索 字符串截取 字符串替换 字符串大小写转化 字符串转数组 字符串格式化

  • iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iO

    iOS之字符串截取、iOS 字符串替换、iOS字符串分隔、iOS之字符串匹配、截取字符串、匹配字符串、分隔字符串 ...

  • PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

    常用字符串函数分类: 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加...

  • Kotlin语言(二):字符串类型

    1、字符串定义 2、字符串删除空格 3、字符串比较 4、字符串切割 5、字符串截取 6、字符串替换 7、字符串模板

  • 字符串扩展

    求字符串大小 字符串解码、转换 字符串截取 字符串汉字处理 字符串 Mac地址 字符串进制转换

  • 2020-09-30字符串

    day8-字符串 字符串的操作 in 和 not in字符串1 in 字符串2 - 判断字符串1是否是字符串...

网友评论

      本文标题:字符串

      本文链接:https://www.haomeiwen.com/subject/ayuehxtx.html