字符串切片

${var:offset:number}

取字符串的最右侧几个字符:

${var: -length} 注意: 冒号后必须有一个空白字符
#!/bin/bash
var="chengkaihua"
echo $var
# 显示字符串右侧偏移两个字符取三个字符
echo ${var::} # eng
echo ${var: -} # hua

基于模式取子串:
${var#*word}: 其中word可以是指定的任意字符;功能:自左向右,查找var变量所存储的字符串中第一次出现的word,

删除字符串开头至第一次出现word字符之间的所有字符
${var##*word}:同上,不过删除的是字符串开头至最后一次由word指定的字符之间的所有内容

${var%word*}:其中word可以是指定的任意字符,功能:自右向左,查找var变量所存储的字符串中第一次出现的word,
删除字符串最后一个字符向左至第一次出现word字符之间的所有字符
${var%%word*}:同上,只不过删除字符串最右侧的字符向左至最后一次出现word字符之间的所有字符

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

查找替换:
${var/pattern/substi}: 查找var所表示的字符串中,第一次被pattern所匹配到的字符串,以substi替换之
${var//pattern/substi}: 查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substi替换之

查找并删除:
${var/pattern}: 查找var所表示的字符串中,删除第一次被pattern所匹配到的字符串
${var//pattern}:
${/var/#pattern}:
${var/%pattern}:

字符大小写转换:
${var^^}: 把var中的所有小写字母转换为大写
${var,,}: 把var中的所有大写字母转换为小写

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

${var:+value}: 如果var不空,则返回value
${var:?error_info}: 如果var为空或未设置,那就返回error_info;否则,则返回var的值

    #!/bin/bash
var="chengkaihua"
echo $var
# 显示字符串右侧偏移两个字符取三个字符
echo ${var::} # eng
echo ${var: -} # hua
echo ${var#*a} # ihua
echo ${var##*a} #
echo ${var%a*} # chengkaihu
echo ${var%%a*} # chengk echo ${var^^} # 小写字母转换为大写
echo ${var,,} # 大写字母转换为小写 echo ${name:-alen} # alen
echo $name #
echo ${name:=alen} # alen
echo $name # alen echo ${name1:?"name1为空或未设置"}

shell编程(七)之字符串处理的更多相关文章

  1. shell编程—注释、字符串和数组(四)

    shell注释 以#作为注释符号 shell中没有多行注释,只能一行加一个#号 字符串操作 1.拼接字符串 2.获取字符串长度 string=“khjf” echo ${#string} 3.提取子字 ...

  2. centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课

    centos shell编程5  LANMP一键安装脚本 lamp  sed  lnmp  变量和字符串比较不能用-eq  cat > /usr/local/apache2/htdocs/ind ...

  3. (七)shell编程学习

    1.shell程序练习:创建一个dir文件夹,在dir文件夹里再创建一个cd.c文件 首先vim hello.sh 2.shell中的变量定义和引用 (1)变量定义和初始化.shell是弱类型语言(语 ...

  4. linux学习(七)Shell编程中的变量

    目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...

  5. shell编程系列19--文本处理三剑客之awk中的字符串函数

    shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...

  6. shell编程系列4--有类型变量:字符串、只读类型、整数、数组

    shell编程系列4--有类型变量:字符串.只读类型.整数.数组 有类型变量总结: declare命令和typeset命令两者等价 declare.typeset命令都是用来定义变量类型的 decla ...

  7. Shell编程笔记

    Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理.   修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...

  8. Linux 与 unix shell编程指南——学习笔记

    第一章    文件安全与权限 文件访问方式:读,写,执行.     针对用户:文件属主,同组用户,其它用户.     文件权限位最前面的字符代表文件类型,常用的如         d 目录:l 符号链 ...

  9. 快速掌握Shell编程

    作者原创作品,转载请注明出处 (一)Shell编程概述 1.1 shell简述 Shell编程和JavaScript非常相似,Shell和JavaScript都是弱类型语言,同时也都是解释型语言.解释 ...

随机推荐

  1. poj1416

    #include<iostream> using namespace std; int target,datanum; ],temproad[]; int N,flag,maxsum; ] ...

  2. MongoDB Schema Design

    Normalization: ...... Relationships: One-to-One relationship: 1-to-many: many-to-many:

  3. zabbix监控特定脚本有无生成

    1.由于权限问题,zabbix不能直接查看其它用户目录下的文件,修改sudo文件使zabbix用户能以root身份执行test命令 visudo zabbix ALL=(root) NOPASSWD: ...

  4. redis集群及相关的使用

    从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接. 1.所有的redis节点彼此互 ...

  5. JavaScript 当前URL取参返回字典

    getParam : function(){ return (key, strURL = window.location.search) => new RegExp("(^|\\?|& ...

  6. Sublime 个人常用快捷键

    Sublime 个人常用快捷键 Hot Key Alt + F3 选中文本所以有相同项;同多次Ctrl + D Ctrl + L 选中整行,继续按可继续选 Ctrl + Shift + M 选择括号内 ...

  7. PostgreSQL 9.5.x的架构图及外存图

  8. react知识总结

    用于构建用户界面的 JavaScript 库 JSX语法 style let style = { color: 'r'+'ed', fontSize: '30px' } let jsx = <d ...

  9. 如何共享联盟cookie

    接上一篇阿里妈妈账号登录状态如何长时间保存 既然我们获取到了cookie, 如果有多个程序都要使用到联盟帐号的时候, 如果不共享cookie, 那么每个程序都需要登录一次, 真的很浪费资源. 如何共享 ...

  10. 2018软件工程W班第一次助教小结

    我是数计学院实验教学中心的一名老师,机缘巧合之下,这个学期跟着汪老师上<软件工程实践>这门课.之前有陆续听说过<构建之法>这本书,记得好像学院还有主办过研讨会.对于这门实践课, ...