shell字符串的用法

 注意:shell4.2和shell4.1会有差别,较低版本的shell可能不支持某些功能
  • 获取字符串长度:${#string}

  • 获取子串:

    注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

    1. ${string:position} 从左边position开始到最后
    2. ${string:position:length} 从position开始length个字符
    3. ${string:begin:-end} 表示从左边begin个字符开始,到从右边end个字符结束
    4. $(string:(-postion)) 如果使用负数,表示从positon处开始到最右边所有的字符;注意负数必须使用括号
    5. $(string:(-postion):length)
    6. ${var:0-start:len} 从右边第几个字符开始以及字符的个数
    7. ${var:0-start} 从右边第几个字符开始一直到结束
  • 贪婪和非贪婪:var=http://www.aaa.com/123.htm

    • # 号截取,删除左边字符,保留右边字符。 (非贪婪匹配)

      echo ${var#*/}

      其中 var 是变量名,# 号是运算符,*/ 表示从左边开始删除第一个 / 号及左边的所有字符

      即删除 http:/

      结果是 :/www.aaa.com/123.htm

    • ## 号截取,删除左边字符,保留右边字符。(贪婪匹配)

      echo ${var##*/}

      (##*/) 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

      即删除http://www.aaa.com/

      结果是 123.htm

    • %号截取,删除右边字符,保留左边字符 (非贪婪匹配)

      echo ${var%/*}

      %/* 表示从右边开始,删除第一个 / 号及右边的字符

      结果是:http://www.aaa.com

    • %% 号截取,删除右边字符,保留左边字符 (贪婪匹配)

      echo ${var%%/*}

      %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

      结果是:http:

shell字符串的用法的更多相关文章

  1. Shell expr的用法 bc 命令 let命令

    Shell expr的用法  bc 命令   let命令 数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245. ...

  2. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  3. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  4. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  5. shell 字符串处理汇总(查找,替换等等)

    字符串: 简称“串”.有限字符的序列.数据元素为字符的线性表,是一种数据的逻辑结构.在计算机中可有不同的存储结构.在串上可进行求子串.插入字符.删除字符.置换字符等运算. 字符: 计算机程序设计及操作 ...

  6. Linux Shell系列教程之(五)Shell字符串

    本文是Linux Shell系列教程的第(五)篇,更多shell教程请看:Linux Shell系列教程 字符串是Shell编程中最常用最有用的数据类型,今天,Linux大学网就为大家介绍一下在She ...

  7. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  8. Python中用format函数格式化字符串的用法

    这篇文章主要介绍了Python中用format函数格式化字符串的用法,格式化字符串是Python学习当中的基础知识,本文主要针对Python2.7.x版本,需要的朋友可以参考下   自python2. ...

  9. linux shell 字符串操作(长度,查找,替换)详解

    linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...

随机推荐

  1. angularjs 中通过 $location 进行路由跳转传参

    $location.path('/page1').search({id: $scope.id,name:$scope.name}); 带参数跳转页面,在新的页面通过$routeParams接收参数 $ ...

  2. Python Web开发问题收集(二)

  3. jenkins(5): jenkins邮件报警配置

    参考:  https://blog.csdn.net/u013066244/article/details/78665075 1.  使用 增强版的邮件通知 1.1  安装插件 1.2.  系统配置 ...

  4. HDU1814 Peaceful Commission 2-sat

    原文链接http://www.cnblogs.com/zhouzhendong/p/8099115.html 题目传送门 - HDU1814 题面 Description 根据宪法,Byteland民 ...

  5. 求小于n且与n互质的数的个数

    int eu(int n){ int ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0)n/ ...

  6. mysql order by多个字段

    Mysql order by 多字段排序 mysql单个字段降序排序: select * from table order by id desc; mysql单个字段升序排序: select * fr ...

  7. 浏览器 User-Agent 大全

    一.基础知识 Http Header之User-Agent User Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA.它是一个特殊字符串头,是 ...

  8. Date、Calendar、DateFormat类

    Date类与Calendar类之间的转换 package date; import java.util.Calendar; import java.util.Date; public class Da ...

  9. 牛客练习赛 26 B题 烟花【DP】(经典)

    <题目链接> 题目描述 小a有个烟花,每个烟花代表着互不相同的颜色,对于第个烟花,它有的概率点燃,现在小a要去点燃它们,他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 输入描述: ...

  10. Effective前端1---chapter 2 用CSS画一个三角形

    1.CSS画三角形的画法 第一步:三角形可以用border画出来,首先一个有四个border的div长这样: <div class="triangle"></di ...