linux shell字符串内置的常用操作(获取长度、查找、替换)
在编写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字符串内置的常用操作(获取长度、查找、替换)的更多相关文章
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- 7.python字符串-内置方法分析
上篇对python中的字符串内置方法进行了列举和简单说明,但这些方法太多,逐一背下效率实在太低,下面我来对这些方法按照其功能进行总结: 1.字母大小写相关(中文无效) 1.1 S.upper() -& ...
- 6.python字符串-内置方法列举
所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...
- javascript:面向对象和常见内置对象及操作
本文内容: 面向对象 常见内置对象及操作 首发日期:2018-05-11 面向对象: JavaScript 是面向对象的编程语言 (OOP).OOP 语言使我们有能力定义自己的对象和变量类型. 对象是 ...
- Day 07 字符串内置方法和爬虫基础3
目录 异常处理 LeetCode使用之两数之和(示例) 字符串内置方法 爬虫基础3 selenium基本使用 selenium模拟百度登录 selenium爬取京东商品信息 异常处理 try: pri ...
- python字符串-内置方法列举
所谓内置方法,就是凡是字符串都能用的方法,这个方法在创建字符串的类中,下面是总结: 首先,我们要学习一个获取帮助的内置函数 help(对象) ,对象可以是一个我们创建出来的,也可以是创建对象的那个类, ...
- Kotlin——初级篇(八):关于字符串(String)常用操作汇总
在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin--初级篇(三):数据类型详解这篇文章. 在 ...
- golang中字符串内置函数整理
字符串内置函数 1. 判断字符串的长度 str := "korea国" fmt.Println("str len=", len(str)) 2. 字符串遍历,同 ...
- Kotlin——关于字符串(String)常用操作汇总
在前面讲解Kotlin数据类型的时候,提到了字符串类型,当然关于其定义在前面的章节中已经讲解过了.对Kotlin中的数据类型不清楚的同学.请参考Kotlin——初级篇(三):数据类型详解这篇文章. 在 ...
随机推荐
- OpenCASCADE Ring Type Spring Modeling
OpenCASCADE Ring Type Spring Modeling eryar@163.com Abstract. The general method to directly create ...
- Android之自定义View的实现
对于学习Android开发的小童鞋对于自定义View一定不会陌生,相信大家对它是又爱又恨,爱它可以跟随我们的心意设计出漂亮的效果:恨它想要完全流畅掌握,需要一定的功夫.对于初学者来说确实很不容易,网上 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
系列目录 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可或缺的,微软的东西还是做得比较人性化的,从webform到MVC,都做到了双向验证 单单的用js实现的前端 ...
- PHP继承
继承是PHP5面象对象程序设计的重要特性之一,它是指建立一个新的派生类,从一个或多个先前定义的类中继承数据和函数,而且可以重新定义或加进新数据和 函数,从而建立了类的层次或等级. 继承性是子类自动共享 ...
- 利用Python进行数据分析(6) NumPy基础: 矢量计算
矢量化指的是用数组表达式代替循环来操作数组里的每个元素. NumPy提供的通用函数(既ufunc函数)是一种对ndarray中的数据进行元素级别运算的函数. 例如,square函数计算各元素的平方,r ...
- 分享在winform下实现模块化插件编程-优化版
上一篇<分享在winform下实现模块化插件编程>已经实现了模块化编程,但我认为不够完美,存在以下几个问题: 1.IAppContext中的CreatePlugInForm方法只能依据完整 ...
- linux系统编程之进程(二):进程生命周期与PCB(进程控制块)
本节目标: 进程状态变迁 进程控制块 进程创建 进程撤消 终止进程的五种方法 一,进程状态变迁 进程的三种基本状态 就绪(Ready)状态 当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便 ...
- linux中字体的安装以及Terminal字体重叠问题解决
安装wps的时候,经常会提示你系统字体缺失,这些字体网上都有,就不分享了,直接讲安装吧. 就比如这个Wingdings字体,在字体目录中新建一个目录Wingdings,将ttf字体文件复制进去,在终端 ...
- python爬虫成长之路(一):抓取证券之星的股票数据
获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...
- 单台机器配置redis多实例
1.增加/usr/local/redis/etc中拷贝一份配置文件重新命名为redis6483.conf 2.编辑redis6483.conf daemonize yes //以后台进程启动 pid ...