百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Shell中针对字符串的切片,截取,替换,删除,大小写操作

liebian365 2025-03-19 14:04 2 浏览 0 评论



切片

返回字符串变量var的长度

${#var}

[root@rocos(17:49:27) ~]# str=abcdef你我他
[root@rocos(17:49:40) ~]# echo ${#str}
9

返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,到最后的部分,offset的取值在0 到 ${#var}-1 之间(bash4.2后,允许为负值)

${var:offset}

[root@rocos(17:49:51) ~]# echo ${str:2}
cdef你我他

返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,长度为number的部分

${var:offset:number}

[root@rocos(17:50:01) ~]# echo ${str:2:3}
cde

取字符串的最右侧几个字符,取字符串的最右侧几个字符, 注意:冒号后必须有一空白字符

${var: -length}

[root@rocos(17:50:11) ~]# echo ${str:-3}
abcdef你我他
[root@rocos(17:50:22) ~]# echo ${str: -3}
你我他

从最左侧跳过offset字符,一直向右取到距离最右侧lengh个字符之前的内容,即:掐头去尾

${var:offset:-length}

[root@rocos(17:50:58) ~]# echo ${str:2:-3}
cdef

先从最右侧向左取到length个字符开始,再向右取到距离最右侧offset个字符之间的内容,注意:-length前空格

${var: -length:-offset}

[root@rocos(17:52:53) ~]# echo ${str: -5:-2}
ef你

截取

其中word可以是指定的任意字符,自左而右,查找var变量所存储的字符串中,第一次出现的word, 删除字符串开头至第一次出现word字符串(含)之间的所有字符

${var#*word}

[root@rocos(17:53:16) ~]# file="var/log/messages"
[root@rocos(17:54:52) ~]# echo ${file#*/}
log/messages

贪婪模式截取

同上,贪婪模式,不同的是,删除的是字符串开头至最后一次由word指定的字符之间的所有内容

${var##*word}

[root@rocos(17:55:54) ~]# echo ${file##*/}
messages

反向截取

其中word可以是指定的任意字符,功能:自右而左,查找var变量所存储的字符串中,第一次出现的word, 删除字符串最后一个字符向左至第一次出现word字符串(含)之间的所有字符

${var%word*}

[root@rocos(17:56:18) ~]# echo ${file%/*}
var/log

同上,只不过删除字符串最右侧的字符向左至最后一次出现word字符之间的所有字符

${var%%word*}

[root@rocos(17:58:51) ~]# echo ${file%%/*}
var
[root@rocos(17:59:00) ~]# url=http://www.magedu.com:8080
[root@rocos(17:59:32) ~]# echo ${url##*:}
8080
[root@rocos(18:01:14) ~]# echo ${url%%:*}
http

替换

查找var所表示的字符串中,第一次被pattern所匹配到的字符串,以substr替换之

${var/pattern/substr}

[root@rocos(18:02:24) ~]# var=abcdbsda
[root@rocos(18:03:48) ~]# echo ${var/b/p}
apcdbsda

查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substr替换之

${var//pattern/substr}

[root@rocos(18:04:05) ~]# echo ${var//b/p}
apcdpsda

查找var所表示的字符串中,行首被pattern所匹配到的字符串,以substr替换之

${var/#pattern/substr}

[root@rocos(18:05:03) ~]# echo ${var/#ab/mn}
mncdbsda

查找var所表示的字符串中,行尾被pattern所匹配到的字符串,以substr替换之

${var/%pattern/substr}

[root@rocos(18:07:47) ~]# echo ${var/%da/xz}
abcdbsxz

删除

删除var表示的字符串中第一次被pattern匹配到的字符串

${var/pattern}

[root@rocos(18:05:45) ~]# echo ${var/ab}
cdbsda

删除var表示的字符串中所有被pattern匹配到的字符串

${var//pattern}

[root@rocos(18:06:02) ~]# echo ${var//b}
acdsda

删除var表示的字符串中所有以pattern为行首匹配到的字符串${var/#pattern}

[root@rocos(18:05:13) ~]# echo ${var/#ab}
cdbsda

删除var所表示的字符串中所有以pattern为行尾所匹配到的字符串${var/%pattern}

[root@rocos(18:30:31) ~]# echo ${var/%da}
abcdbs

大小写转换

把var中的所有小写字母转换为大写

${var^^}

[root@rocos(18:06:24) ~]# echo ${var^^}
ABCDBSDA

把var中的所有大写字母转换为小写

${var,,}

[root@rocos(18:07:23) ~]# c=ABCD
[root@rocos(18:07:39) ~]# echo ${c,,}
abcd

相关推荐

python如何对字符串进行操作(python如何对字符串进行操作输出)

1.字符串的创建可通过直接赋值、构造或转义字符来创建字符串。#普通字符串s="Hello,World!"#多行字符串(使用三引号)multi_line_str='''Thisi...

Excel表格中11个常用的字符串函数

今天和大家聊聊常用的字符串函数,在不同的条件下,如何选择字符串函数很关键。下面我为大家列举了11个关于字符串的函数公式。一、EXACT(两个字符串进行结果比较)比较两个字符串是否完全相同(这里是要区分...

详细介绍一下Python中如何对字符串进行操作?

在Python中,字符串做为一种常见的数据处理类型,几乎在每个应用程序中都会被用到。而作为Python中使用最广泛的数据类型Python也是提供了很多强大的方法来支持对于字符串的处理操作。下面我们就来...

Java中你知道几种从字符串中找指定的字符的数量

遇到这样的问题,常规的思路估计就是遍历String,然后逐个对比。下面先看循环遍历循环遍历privatestaticintgetNum(StringoriginStr,Stringtarg...

C语言strcspn函数详解:字符串的“扫雷探测器”

strcspn是C语言标准库中的一个函数,定义在头文件中。它用于计算从字符串的开始到首次出现任何属于指定字符集合的字符之间的字符数量。换句话说,strcspn计算的是主字符串中不包含指定字符集...

如何使用 Python 的 f-string 进行字符串格式化

Python中的字符串格式化曾经有点麻烦。必须在...

java判断字符串中是否包含某个字符

1使用String类的contains()方法contains()方法用于判断字符串中是否包含指定的字符或字符串。语法如下:publicbooleancontains(CharSequence...

Python基础:f-string不同数据类型的格式化选项,终极指南!

上一篇文章我们介绍了4种字符串格式化方法,其中最现代、最直观的方式是f-string,从Python3.6开始引入,而且时不时就增加一些超级优雅的小改进。今天,钢铁老豆想要继续给大家展开介绍不同数据...

Excel查找指定字符串,返回相应的结果

通过下面的函数,可以实现查找指定字符串,若找到返回“有”,若找不到返回“无”。=IF(ISNUMBER(SEARCH("失业",G3)),"有","无")...

一个list中,有b.a.b.c.b.b.写个方法去掉所有b

importjava.util.ArrayList;importjava.util.List;publicclassRemoveBFromStringList{/**...

掌握Python f-string(掌握催眠能力之后的日常生活)

f-string,通常称为格式化字符串文本,是Python3.6中添加的一项强大功能,它提供了一种将表达式包含在字符串文本中的清晰实用的方法。,...

深入了解字符串:定义、转义字符和字符串下标

字符串是编程中常见的数据类型之一,用于表示文本信息。在绝大多数编程语言中,字符串都是由一系列字符组成的序列,可以包含字母、数字、符号以及空格等。字符串的定义:...

100个Java工具类之70:字符串处理工具类StringUtils

StringUtils是常用的工具类,提供大量处理字符串的静态方法。StringUtils主要特点...

Shell中针对字符串的切片,截取,替换,删除,大小写操作

切片返回字符串变量var的长度...

Sqlite - 常规函数 - RTRIM(sqlite命令行工具)

在SQLite中,RTRIM函数是一个用于处理字符串的函数,其主要作用是移除字符串右侧(尾部)的指定字符。如果不指定要移除的字符,默认会移除字符串右侧的空格字符。以下是对RTRIM函数的详细...

取消回复欢迎 发表评论: