Shell 8种字符串截取方法_戴国进的博客-程序员秘密_shell 截取字符串

技术标签: # shell脚本  shell  

Linux 的字符串截取很有用。有八种方法。

假设有变量: var=http://www.aaa.com/123.htm

1. # 号截取,删除左边字符,保留右边字符。

代码如下:

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
即删除 http://
结果是 :www.aaa.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

代码如下:

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
即删除 http://www.aaa.com/

结果是 123.htm

3. %号截取,删除右边字符,保留左边字符

代码如下:

echo ${var%/*}

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

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

4. %% 号截取,删除右边字符,保留左边字符

代码如下:

echo ${var%%/*}

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

5. 从左边第几个字符开始,及字符的个数

代码如下:

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:

6. 从左边第几个字符开始,一直到结束

代码如下:

echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。
结果是 :www.aaa.com/123.htm

7. 从右边第几个字符开始,及字符的个数

代码如下:

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
结果是:123

8. 从右边第几个字符开始,一直到结束

代码如下:

echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。
结果是:123.htm

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/JineD/article/details/124196546

智能推荐

python的package import 以及相对导入和绝对导入_sloanqin的博客-程序员秘密

1、首先基本的概念可以参考书或者百度,我这里是给出实践说明,同时提供源码说明;2、要注意:如果要将一个文件夹目录当做package的话,必须要在该目录下加一个__init__.py的文件(注意是两个下划线连在一起__),否则将无法作为一个package;3、程序的目录结构如下:3、谨记:执行应用程序的模块,不能使用相对导入;比如a.py,打算执行该文件,那么该文件文件名就会变成

优秀it博客和文章_weixin_34097242的博客-程序员秘密

优秀博客综合杨文博(供职于百度公司,任复合搜索部资深研发工程师,目前作为tech lead,负责垂直行业搜索后端架构研发。)杨远骋徐宥(Google 软件工程师. 这个中文博客是我的思考记录,主要用来帮助我 debug/refactor 我的思想)酷壳(15年软件开发相关工作经验,8年以上项目和团队管理经验)池建强(现任瑞友科技IT应用研究院副院长)刘未鹏师北宸王聪张磊郭家宝陈硕冯大辉(现在就职于...

关于MySQL中default怎么用_Yi_Cui_1207的博客-程序员秘密_mysql中default函数

转载自:http://www.xiaoxiaozi.com/2009/07/09/1111/没有规矩,不成方圆,任何事物都是如此。在 MySQL 中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。今天我们就来看一下 MySQL 的字段约束:NULL 和 NOT NULL 修饰符、DEFAULT 修饰符,AUTO_INCREMENT 修饰符

阿里巴巴java开发手册_qq_44264147的博客-程序员秘密

阿里巴巴java开发手册编程规约命名风格常量定义代码格式OOP规约日期时间集合处理并发处理控制语句注释规约前后端规约其它编程规约命名风格【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:name / name / $name /name / name$ / name【强制】所有编程相关的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,纯拼音命名方式更要避免采用。正例:al

给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。_磷酸二氢钠的博客-程序员秘密

需求:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。分析思路:1、将所有点二维坐标化,即定义出所有点的x,y坐标值2、遍历出所有取出两点的情况(不考虑先后顺序),根据任意两点都确定一条直线,直线参数为k斜率,b与y轴交点的纵坐标(此时x=0),将他们放入一个列表中3、将所有直线放入一个集合并完成去重操作,增加直线的第三个参数n=0用于第四步判断每条直线上有几个点4...

简易版三维重建心得_Magician0619的博客-程序员秘密_三维重建的心得体会怎么写

文章目录一、VisualSFM初步重建二、MeshLab表面重建1、Possion表面重建系数选择三、VisualSFM+MeshLab实现三维重建步骤简述一、VisualSFM初步重建二、MeshLab表面重建1、Possion表面重建系数选择Octree DeepthSet the depth of the Octree used for extracting the fi...

随便推点

自动化办公练习1.编写一个程序,遍历一个目录树,查找特定扩展名的文件(诸如.pdf 或.jpg)。不论这些文件的位置在哪里, 将它们拷贝到一个新的文件夹中。_两只猪是我的博客-程序员秘密

# 导入模块import osimport shutilpath = r'C:\Users\Administrator\Desktop\OfficeAutomation' # 给予遍历地址new_path = r'C:\Users\Administrator\Desktop\办公自动化练习\新位置' # 给予复制图片的位置list = ['jpg', 'png'] # 用来判断图片的拓展名for dirpath, dirlist, filelist in os.walk(path): .

从零开始搭建框架SSM+Redis+Mysql(一)之摘要_weixin_30783913的博客-程序员秘密

从零开始搭建框架SSM+Redis+Mysql(一)之摘要本文章为本人实际的操作后的回忆笔记,如果有步骤错漏,希望来信[email protected]或者评论指出。本文章只体现过程,仅体现操作流程,不是教程,故不适合新手学习作用。业务背景:本文章旨在体现框架搭建的步骤,仅涉及到普通的前后台注册登陆功能。本系列分8节(包含摘要)目录:1.从零开始搭建框架SSM+Re...

OpenStack SR-IOV_weixin_34288121的博客-程序员秘密

本文主要介绍SR-IOV及实践openstack的SR-IOV功能的过程。sriov功能介绍SR-IOV 使一个单一的功能单元(比如,一个以太网端口)能看起来像多个独立的物理设备,即支持SR-IOV 功能的物理设备能被配置为多个功能单元。SR-IOV 两种功能(function):物理功能(Physical Functions,PF):这是完整的带有 SR-IOV 能力的PCI...

美印两国程序员真的平分秋色吗?_技术专家的博客-程序员秘密

如果我们留意一下过去美国和印度程序员所有的刻板印象、看法、主观和客观的评估,我们能从中可以发现哪个群体的技能更高么?  为了解决这个问题,GILD网站已经发布了首个量化的研究结果。一个关键的发现是:印度开发人员有更好的数学和逻辑能力,美国开发人员有更好的Web编程技巧。以下是详细

数据挖掘Data Set收集_discxuwei的博客-程序员秘密_cornell data set

<br />UCI数据集是一个常用的标准测试数据集,下载地址在<br />http://www.ics.uci.edu/~mlearn/MLRepository.html<br />我的主页上也有整理好的一些UCI数据集(arff格式):<br />http://lamda.nju.edu.cn/yuy/files/download/UCI_arff.zip<br />在看别人的论文时,别人使用的数据集会给出数据集的出处或下载地址(除非是很机密的数据,例如与国家安全有关)。如果你看的论文没有给出数据集的出处

Boost.Asio 0.37简介(翻译自Boost.Asio 0.37的文档的首页)_zuroc的博客-程序员秘密

Boost.Asio 0.37简介(翻译自Boost.Asio 0.37的文档的首页)原文:http://asio.sourceforge.net/boost_asio_0_3_7/libs/asio/doc/翻译:张沈鹏 http://blog.csdn.net/zuroc or http://www.cppblog.com/zurocBoost.Asio是利用当代C++的先进方法,跨平台...

推荐文章

热门文章

相关标签