字符串切片

${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. Centos修改时间为24小时制

    终端输入命令:tzselect 根据提示选择:5 --> 9-->1-->1-->okrm /etc/localtimeln -sf /usr/share/zoneinfo/A ...

  2. FEX(Fabric Extender)

    一.FEX Cisco Nexus 2000 FEX作为N5K.N6K.N7K.FI的一个远程线卡,单独的2K是没有网管功能的,必须配合父系交换机使用. 主要解决TOR和EOR的问题,TOR,接线简单 ...

  3. jstack命令

    先是有jps查看进程号: hollis@hos:~$ jps 29788 JStackDemo1 29834 Jps 22385 org.eclipse.equinox.launcher_1.3.0. ...

  4. JavaScript 里 var a =a ||{}

    首先,搞明白||的意思. 1.在js里面,||运算符,比如(A||B)有个很有意思的用处: 2.系统先判断A表达式的布尔值,是真是假.如果为真,直接返回A.如果为假,直接返回B(不会判断B是什么类型) ...

  5. !!在js中的用法

    var obj = ""; //undefinedconsole.log(!!obj);  //false(强制转换成Boolean类型)

  6. XMPP技术之Smack库的自定义消息扩展

    写此文是为了纪念我耗时两天的Smack库应用开发. 太苦恼了,网上找了一堆材料,关于XMPP的消息扩展方面的资料感觉都是出于同一个源头,基本问题还是基于的库版本都是低于4.1版本的讲解. 我是在Sma ...

  7. 白话skynet第二篇:skynet的通信调试pack和sprotol

    今天来说说Skynet客户端和服务端网络通信的基础部分. Skynet当前版本.lua是skynet自带的5.3版本. 根据示例,我们可以知道.通信的步骤如下. 客户端按大小端打包成二进制. sock ...

  8. vue2.x入坑总结—回顾对比angularJS/React的一统

    从感性的角度讲,我是不屑于用VUE,觉得react套件用起来更顺手,但是vue现在越来火,所以也不得入vue(杂烩汤)的坑.vue/anguarJS/React,三者对关系现在就是: https:// ...

  9. 5个最好的TensorFlow网络课程

    1. Introduction to TensorFlow for Artificial Intelligence, Machine Learning and Deep Learning This c ...

  10. 【转】Anaconda下安装pyecharts步骤及常见错误

    本文转载自:https://blog.csdn.net/skj1995/article/details/81187954 (1)之前看了几篇博客,有人说用cmd命令在目录C:\Users\Admini ...