文档章节

Linux 的字符串截取

o
 osc_wws45aot
发布于 2019/08/20 15:10
字数 557
阅读 19
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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

[root@localhost shell]# url=https://i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]# echo ${url#*//}
i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]#

  

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://

 

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

[root@localhost shell]# echo ${url##*/}
EditPosts.aspx?opt=1
[root@localhost shell]#

  

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 https://i.cnblogs.com/

 

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

[root@localhost shell]# echo ${url%.*}
https://i.cnblogs.com/EditPosts
[root@localhost shell]#

  

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

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

[root@localhost shell]# echo ${url}
https://i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]# echo ${url%%.*}
https://i
[root@localhost shell]#

  

%%.* 表示从右边开始,删除最后(最左边)一个 .号及右边的字符

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

[root@localhost shell]# echo ${url:0:5}
https
[root@localhost shell]#

  

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

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

[root@localhost shell]# echo ${url:7}
/i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]#

  

其中的 7 表示左边第8个字符开始,一直到结束。

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

[root@localhost shell]# echo ${url:0-7:3}
x?o
[root@localhost shell]# echo ${url: -7:3}
x?o
[root@localhost shell]#

  

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

注意:第二个命令0换成空格了,如果没有空格就是word-7

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

[root@localhost shell]# echo ${url: -7}
x?opt=1
[root@localhost shell]# echo ${url: 7}
/i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]# echo ${url:7}
/i.cnblogs.com/EditPosts.aspx?opt=1
[root@localhost shell]#

  

表示从右边第七个字符开始,一直到结束。

"-"代表从右开始;不加"-"从左开始

 ${变量名^^}替换为大写

 ${变量名,,}替换为小写

 tr 替换大小写

 tr [:lower:] [:supper:]<filename

 变量1=${变量名2:-word}:变量2没有值,将word赋值给变量2

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
字符串分割函数strtok

前天晚上和 xiaofazhen 看程序, 突然间看到他的代码里有 strtok 这么一个函数, 网上查了一下, 居然是用来做字符串分割的; 原来 C 下还是有这函数的, 以前还一直抱怨 C 下没有字符串分割函数,...

sailtseng
2012/06/19
5.1K
1
【shell】shell基础脚本合集

1.向脚本传递参数 #!/bin/bash 功能:打印文件名与输入参数 作者:OLIVER echo $0 #打印文件名echo $1 #打印输入参数 执行结果: 2.在脚本中使用参数 #!/bin/bash 功能:输入参数的使用 作者...

osc_n3sez95e
2019/01/18
6
0
Shell 编程详解

部分引用自:https://blog.csdn.net/qq_22075977/article/details/75209149 一、概述   Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,...

osc_2mwrwkro
2019/01/14
1
0
Linux Shell 截取字符串

Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/}${var##*/}${var%/*}${var%%/*}${var:start:len}${var:start}${var:0-start:len}${var:0-start} 下面用几个例子展示一下: 1)......

fengbohello
2016/10/12
0
0
Shell 截取字符串

转载自:https://www.cnblogs.com/fengbohello/p/5954895.html (作者:郝峰波 Linux Shell 截取字符串) 下文原创作者郝峰波,内容以及足够详细,我平常也经常参考,在此直接引用。 shell中...

osc_hzy90uit
2019/06/07
2
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊rocketmq-client-go的TraceInterceptor

序 本文主要研究一下rocketmq-client-go的TraceInterceptor TraceInterceptor rocketmq-client-go-v2.0.0/producer/interceptor.go // WithTrace support rocketmq trace: https://github.c......

go4it
23分钟前
0
0
如何在Android文本视图周围添加边框? - How do I put a border around an Android textview?

问题: 是否可以在textview周围绘制边框? 解决方案: 参考一: https://stackoom.com/question/EfXR/如何在Android文本视图周围添加边框 参考二: https://oldbug.net/q/EfXR/How-do-I-put...

法国红酒甜
37分钟前
10
0
设计模式(4) 建造者模式

什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了...

zhixin9001
50分钟前
14
0
ArrayList源码分析 —— JDK8

ArrayList的特性 ArrayList内部使用数据作为存储结构,ArrayList可以理解为数组的扩展对象,封装了常用的和非常用的操作数组的方法。以及当数组长度不足以保存数组时,自动扩容数组,通常Arr...

XuePeng77
56分钟前
42
0
__slots__的用法? - Usage of __slots__?

问题: Python中__slots__的目的是什么-尤其是关于何时以及何时不使用它的目的? 解决方案: 参考一: https://stackoom.com/question/1ymu/slots-的用法 参考二: https://oldbug.net/q/1ym...

富含淀粉
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部