首页 程序笔记 linux shell的几种截取字符串的方法

linux shell的几种截取字符串的方法

写shell脚本时,免不了需要截图字符串,这里有几种截取字符串的方法供参考。
假设shell中有字符串变量:str=aabbccddeeffaabbccddeeff

1. 符号“#“截取,删除指定字符串最左边一次匹配位置左边的字符串,保留右边字符串

代码如下:

echo ${str#*bb}

其中str是变量名,“#”是运算符,“#*bb”表示删除字符串“bb”第一次匹配位置左边的所有字符串,执行结果是:ccddeeffaabbccddeeff

2. 符号“##”,删除指定字符串最右边一次匹配位置的左边字符串,保留右边字符串

使用如下代码:

echo ${str##*bb}

其中str是变量名,“##”是运算符,“##*bb”表示删除字符串“bb”最后一次匹配位置左边的所有字符串,执行结果是:ccddeeff

3. 符号“%”,删除指定字符串最右边一次匹配位置右边字符串,保留左边字符串

使用如下代码:

echo ${str%bb*}

其中str是变量名,“%”是运算符,“%bb*”表示删除字符串“bb”最右边一次匹配位置右边的所有字符串,执行结果是:aabbccddeeffaa

4. 符号“%%”,删除指定字符串最左边一次匹配位置右边字符串,保留左边字符串

使用如下代码:

echo ${str%%bb*}

其中str是变量名,“%%”是运算符,“%bb*”表示删除字符串“bb”最左边一次匹配位置右边的所有字符串,执行结果是:aa

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

使用如下代码:

echo ${str:0:5}

其中0表示从左边开始第一个字符,5表示字符的总个数,执行结果是:aabbc

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

使用如下代码:

echo ${str:5}

其中7表示从左边开始第7个字符开始,直到结束,执行结果是:cddeeffaabbccddeeff

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

使用如下代码:

echo ${str:0-7:5}

其中0-7表示从右边第7个字符开始,5表示取5个字符,执行结果是:cddee

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

使用如下代码:

echo ${str:0-7}

其中0-7表示从右边第7个字符开始,直到结束,执行结果是:cddeeff

1

站心网

写shell脚本时,免不了需要截图字符串,这里有几种截取字符串的方法供参考。 假设shell中有字符串变量:str..

为您推荐

Web前端入门第 60 问:JavaScript 各种数组定义与数组取值方法

数组可以算是程序里面最常用的数据结构了,但凡网页上任何一个列表数据,基本都是以数组的形式存在,像表格、banner图、菜单列表、商品列表,分类列表等等,在前端领域都是以数组处理。数组的定义JS 的数组花样很多..

Web前端入门第 53 问:JavaScript 的各种调试方法

任何一门编程语言,在学习之前都应该先弄清楚它的调试方法,毕竟没有不挖坑的人类!程序一旦出现问题,第一时间就是找到问题出在哪儿,其次才是拿出解决办法。如果都找不到问题原因,那又何从谈起解决办法呢?如何排..

软件产品开发中常见的10个问题及处理方法

常见的10个问题#产品开发中常见的10个问题思维导图需求相关#1. 需求不明确#在日常工作中,需求来源于用户、老板、客户、竞品分析、业务部门、产品经理等,这些人或部门会提出需求,因为他们不是产品经理,提出的需求..

ThinkPHP5.0如何全局替换前端某个字符串

在 Nginx 配置文件中添加以下内容:sub_filter'旧字符串''新字符串';sub_filter_onceoff;在.htaccess文件中添加以下内容:<IfModulemod_substitute.c>AddOutputFilterByTypeSUBSTITUTEtext/htmlSubs..

ASP.Net Core WebApi几种版本控制对比

一、版本控制的好处:(1)有助于及时推出功能, 而不会破坏现有系统。(2)它还可以帮助为选定的客户提供额外的功能。API 版本控制可以采用不同的方式进行控制,方法如下:(1)在URL 中追加版本或作为查询字符串参..

js 截取字符串

本文为大家介绍三种 js 截取字符串的方法:substring() 方法;substr() 方法;slice() 方法;方法1:substring() 方法string.substring(from, to)方法从 from 位置截取到 to 位置,to 可选,没有设置时默认到末尾。..

一个提升运营/营销转化率的万能方法!

之前,笔者有分享过说我最喜欢的增长是可复制可持续的增长,它一般都会有三个关键过程:首先是小范围测试,低成本试错,也就是最小可行性验证,让ROI最大化。然后是把测试的最优结果整理为可执行的标准化化流程。前..

如何选择更适合你的 Linux 发行版?

很多人经常会问我这样一个问题:“嘿,你是用Linux的,对吧?我应该使用Linux的哪个版本?我有这个朋友推荐我_____,你觉得怎么样?”我通常会以这样的问题回复:这取决于你想做什么?今天我决定写一篇关于如何选择L..

学习最重要是方法,管理最重要是高度

技术学习要兼顾深度和广度夯实技术基础这么多年来,我面试了很多人。我越发感到「技术基础」非常重要。很多技术的本质是一样的。技术基础足够好的话,学东西可以非常快。往下到操作系统层面,甚至计算机硬件层面,你..

Java中String类常见的方法

以下介绍字符串常见的几个方法。介绍String类在 Java 中,String类是一个代表字符串的类,具有以下特性:不可变性:String对象一旦被创建就是不可变的,即它们的值在创建后不能被更改。任何对String对象的修改操作实..

VS创建.NET Core项目使用Docker方式部署到Linux服务器

在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..

.net 通过 HttpClient 下载文件同时报告进度的方法

通过 HttpClient 的 ContentLength 很多时候都可以拿到下载的内容的长度,通过 ReadAsync 可以返回当前读到的长度,将读取到的长度加起来就是已经下载的长度看起来很简单,于是直接给代码private static async Task ..

关于SQL优化的几种方式

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id fr..

javascript 6种连接数组的方法和对比

在 JavaScript 中,有多种方法可以用来连接数组,以下是常见的几种:1. concat() 方法用于连接两个或多个数组,返回一个新的数组,不修改原数组。const arr1 = [1, 2, 3];const arr2 = [4, 5, 6];const result = arr..

.NET开源ORM FreeSql常见问题和解决方法

FreeSql 是一个功能强大的 .NET 开源 ORM(对象关系映射)工具,支持多种数据库类型并提供丰富的功能特性。以下是使用 FreeSql 过程中常见的问题及其解决方法:1. 数据库连接问题问题描述:无法连接数据库,报错提示..

js 数组方法 - 修改篇

js数组方法可分为三类:修改、访问、迭代。修改:改变原有数组访问:不改变原有数组,从原有数组中获取数据迭代:对数组的每一项进行处理,返回数据本文主要介绍数组的修改篇一、增加1、push()含义:在数组末尾添加..

Tesseractjs 前端OCR识别提取图像文本字符工具 支持 100+ 种语言

Tesseract.js 简介Tesseract.js 是一个基于 Tesseract OCR 引擎的开源 JavaScript 库,用于在浏览器和 Node.js 环境中执行光学字符识别 (OCR)。它的特点是无需依赖服务器端支持,完全在客户端执行 OCR 操作。Tessera..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

.NET开发中常见的异常报错原因和解决方法?

在 .NET 开发中,常见的报错通常涉及代码编写、配置和运行时环境。以下是一些常见的报错类型及其解决建议:1. NullReferenceException原因:尝试访问空对象的成员。解决:在访问对象之前检查是否为 null,可以使用 C..

修改VisualSVN Server地址为ip地址,修改svn服务端地址为ip或者域名地址的方法

svn服务端搭建成功之后,地址太长很麻烦,想搞一个服务器专门做svn服务端,修改svn地址为ip地址无奈网上教程不靠谱,于是自己研究了下1.修改VisualSVN 的地址2修改地址并保存很多人不成功就在这里,点击确认之后复制..

发表回复

返回顶部

微信分享

微信分享二维码

扫描二维码分享到微信或朋友圈

链接已复制