linux shell substr(分割字符串)_snihcel的博客-程序员ITS301_bash substr

技术标签: shell  

原来在shell中如果遇到要截取字符串的情况,就调用awk中的substr来实现。
今天了解到一种新的方法,原来shell中本身就支持这种用法。
如,有一字符串”12345678″,现在要截取第三个到第六个字符的字符串区间。
则可以:


[xok.la ~]$ export str="123456789"
[xok.la ~]$ echo ${str:3:(6-3)}
456
[xok.la ~]$ unset str

从以上第二个表达式可以看出这个用法,即:${str:3:(6-3)}
可以归纳为:${str:begin:len},且支持表达式,如:6-3。

补充一下从网上找到一些其他的用法:

shell字符串的截取的问题:
一、Linux shell 截取字符变量的前8位,有方法如下:


1.expr substr "$a" 1 8
2.echo $a|awk '{print substr(,1,8)}'
3.echo $a|cut -c1-8
4.echo $
5.expr $a : '\(.\\).*'
6.echo $a|dd bs=1 count=8 2>/dev/null

二、按指定的字符串截取
1、第一种方法:
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要

例子:


$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg

2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。

可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:


$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

三、按照指定要求分割:
比如获取后缀名


ls -al | cut -d "." -f2
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/snihcel/article/details/39910083

智能推荐

震撼音乐 收集_weixin_34378922的博客-程序员ITS301

震撼音乐:代表作TwoStepsFromHellVictoryNigelStanfordCymaticsAudiomachineBreathAndLifePavelYudinSweetThomasBergersenArc...

Python-Numpy入门_蜂鸟up的博客-程序员ITS301

Python-Numpy入门学习Numpy是python科学计算的基础库。内容比较多,过了一遍之后,今后使用过程中查表逐步熟练

php mongodb插件安装,php的mongodb扩展插件安装_读库御宅学的博客-程序员ITS301

1.首先下载php的mongodb扩展从这个网址下载mongodb的扩展源码包从http://pecl.php.net/package/mongo这个网址下载mongodb的扩展源码包wgethttp://pecl.php.net/get/mongo-1.4.5.tgz2.解压安装包tarzxfmongo-1.4.5.tgz3.进入解压目录,运行phpize进行安装准备cdmongo-1....

Mybatis使用c3p0_sun9087的博客-程序员ITS301_c3p0 mybatis

Mybatis支持第三方连接池在Mybatis官方有提到第三方连接池的实现:你可以通过实现接口 org.apache.ibatis.datasource.DataSourceFactory 来使用第三方数据源实现:public interface DataSourceFactory { void setProperties(Propertiesprops); DataSource getDataSource(); }org.apache.ibatis.datasource.unpoole

springboot整合shiro-redis_快乐的小毛驴的博客-程序员ITS301

1.依赖<dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.3</version></dependency>&l...

Grasshopper 2.0 MP Color FireWire 1394b (Sony ICX274)_weixin_34361881的博客-程序员ITS301

   相机参数如下,参见这里:Resolution1624 x 1224Frame Rate30 FPSMegapixels2.0 MPChromaColorSensor NameSony ICX274Sensor TypeCCDReadout MethodG...

随便推点

国密SM2素域椭圆曲线快速约减算法x64编程研究(下)_weixin_33711647的博客-程序员ITS301

2019独角兽企业重金招聘Python工程师标准>>> ...

HTML5和CSS3_qq_43479942的博客-程序员ITS301

HTML5HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。HTML5新特性HTML5 中的一些有趣的新特性:(1)用于绘画的 canvas 元素(2)用于媒介回放的 video 和 audio 元素(3)对本地离线存储的更好的支持。localStorage长期存储数据,浏览器关闭后数据不丢失,数据一直保留到通过javascript删除或者用户清除...

java se课后题答案_Javase课后题答案(1-6)_weixin_39953578的博客-程序员ITS301

Javase课后题答案(1-6) 第 1 章 Java 概述1. 编译 java application 源程序文件将产生相应的字节码文件,这些字节码文件别的扩展名为.class2. 执行一个 java 程序 fristapp 的方法是运行 java fristapp3. main()方法的返回类型是 void4. 在 java 代码中,public static void main 方法的参数描...

植树节丨多一片绿从你我做起_盐城北大青鸟的博客-程序员ITS301

三月你好阳春三月里,草长莺飞间,冬天的寒意还未褪尽,春天带着绿色的气息向我们走来,春风吹绿了枝头上的嫩芽,吹绿了地上的小草,也吹动了孩子们的热情。3月12日,一年一度的植树节又沐浴着春风来到了。植树节是为了绿色和环境所设定的节日,让我们对大自然多了一份呵护,对绿树多了一份关爱。为了迎接植树节的到来,盐城北大青鸟射阳基地特组织同学们拿起手中的画笔画出他们心中的植树节。Arbor Day在这春暖花开的时节,让我们携手争当绿色环保卫士,共同体验劳动乐趣,感受自然与生命之美。愿我们的地球因着可爱的

【Vue3】使用element-plus进行基础的表单校验_我血条子呢的博客-程序员ITS301_element vue3 表单校验

<script setup>import { ref, reactive } from 'vue'// 表单元素const dom = ref(null)// 校验规则const rules = { name: [{ required: true, message: '请输入活动名称', trigger: 'blur' }]}// 绑定数据const form = reactive({ name: ''})// 测试方法const onSubmit = () =&

unity模型缩放被自动修改__hiJ的博客-程序员ITS301

如果一动画有对模型进行缩放,那么在播放播放动画后,模型的缩放将被修改。模型的其他属性,如位置,旋转应该也是同样道理

推荐文章

热门文章

相关标签