在编写shell程序时,经常会涉及到字符串相关操作。有许多命令语句,如awk,sed都能够做字符串各种操作。 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时间,因此速度会很的快。如果内置的操作符能够做到的,优先使用内置的。

1 读取字符串值

表达式 含义
${var} 变量var本来的值
${var-default} var没声明返回default,但不改变var的值
${var:-default} var没声明或其值为空返回default,但不改变var的值
${var=default} var没有声明返回default,并将var的值设置为default
${var:=default} var没声明或其值为空返回default,并将var的值设置为default
${var+other} var被声明返回other,但不改变var的值
${var:+other} var被声明且不为空返回other,但不改变var的值
${var?err_msg} var没有被声明,将消息err_msg送到标准错误输出
${var:?err_msg} var没声明或者为空,将消息err_msg送到标准错误输出
${!varprefix*} 匹配之前全部以varprefix开头进行声明的变量
${!varprefix@} 匹配之前全部以varprefix开头进行声明的变量

2 字符串操作

表达式 含义
${#string} string的长度
${string:position} 在string中, 从位置position开始提取子串
${string:position:length} 在string中, 从位置position开始提取长度为$length的子串
${string#substring} 从变量string的开头, 删除最短匹配substring的子串
${string##substring} 从变量string的开头, 删除最长匹配substring的子串
${string%substring} 从变量string的结尾, 删除最短匹配substring的子串
${string%%substring} 从变量string的结尾, 删除最长匹配substring的子串
${string/substring/replacement} 使用replacement, 来取代第一个匹配的substring
${string//substring/replacement} 使用replacement, 取代全部匹配的substring
${string/#substring/replacement} 假设string的前缀匹配substring, 那么就用replacement来取代匹配到的substring
${string/%substring/replacement} 假设string的后缀匹配substring, 那么就用replacement来取代匹配到的substring
 说明:"substring”可以为正则表达式

linux shell字符串内置的常用操作(获取长度、查找、替换)的更多相关文章

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

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

  2. 7.python字符串-内置方法分析

    上篇对python中的字符串内置方法进行了列举和简单说明,但这些方法太多,逐一背下效率实在太低,下面我来对这些方法按照其功能进行总结: 1.字母大小写相关(中文无效) 1.1 S.upper() -& ...

  3. 6.python字符串-内置方法列举

    所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...

  4. javascript:面向对象和常见内置对象及操作

    本文内容: 面向对象 常见内置对象及操作 首发日期:2018-05-11 面向对象: JavaScript 是面向对象的编程语言 (OOP).OOP 语言使我们有能力定义自己的对象和变量类型. 对象是 ...

  5. Day 07 字符串内置方法和爬虫基础3

    目录 异常处理 LeetCode使用之两数之和(示例) 字符串内置方法 爬虫基础3 selenium基本使用 selenium模拟百度登录 selenium爬取京东商品信息 异常处理 try: pri ...

  6. python字符串-内置方法列举

    所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...

  7. Kotlin——初级篇(八):关于字符串(String)常用操作汇总

    在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin--初级篇(三):数据类型详解这篇文章. 在 ...

  8. golang中字符串内置函数整理

    字符串内置函数 1. 判断字符串的长度 str := "korea国" fmt.Println("str len=", len(str)) 2. 字符串遍历,同 ...

  9. Kotlin——关于字符串(String)常用操作汇总

    在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin——初级篇(三):数据类型详解这篇文章. 在 ...

随机推荐

  1. Android笔记——Matrix

    转自:http://www.cnblogs.com/qiengo/archive/2012/06/30/2570874.html#translate Matrix的数学原理 在Android中,如果你 ...

  2. 【SQL】关于无法附加文件的错误

    [SQL]关于无法附加文件的错误 1.错误信息如下: 2.估计是权限问题右击属性,把权限开一下 3.然后就附加成功了~~ ——————————————————————————————————————— ...

  3. lua解析赋值类型代码的过程

    我们来看看lua vm在解析下面源码并生成bytecode时的整个过程: foo = "bar" local a, b = "a", "b" ...

  4. Python模拟登陆新浪微博

    上篇介绍了新浪微博的登陆过程,这节使用Python编写一个模拟登陆的程序.讲解与程序如下: 1.主函数(WeiboMain.py): import urllib2 import cookielib i ...

  5. Android图片缓存之Lru算法

    前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小.我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发 ...

  6. Beginners Guide To Web Development

    Web Development Front End Development Back End Development

  7. T-SQL:毕业生出门需知系列(九)

    <SQL 必知必会>读书笔记 -- 第9课 汇总数据 9.1 聚集函数:对某些行运行的函数,计算并返回一个值 案例: -- 确定表中函数 -- 获得表中某些行的和 -- 找出表列的最大值. ...

  8. 哈夫曼(huffman)树和哈夫曼编码

    哈夫曼树 哈夫曼树也叫最优二叉树(哈夫曼树) 问题:什么是哈夫曼树? 例:将学生的百分制成绩转换为五分制成绩:≥90 分: A,80-89分: B,70-79分: C,60-69分: D,<60 ...

  9. ASP.NET Core 中文文档 第二章 指南(4.3)添加 View

    原文:Adding a view 作者:Rick Anderson 翻译:魏美娟(初见) 校对:赵亮(悲梦).高嵩(Jack).娄宇(Lyrics).许登洋(Seay).姚阿勇(Dr.Yao) 本节将 ...

  10. 利用fis3自动化处理asp.net项目静态资源时遇到的一个编码问题

    fis3是一款强大的前端自动化构建工具,提供了很多非常实用的功能,具体参考http://fis.baidu.com/,使用该工具需要安装node环境. 最近在部署网站的时候尝试了一下使用该工具对前端资 ...