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

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

# 读sharp 谐音 杀:

${var#*//}  杀掉//左边的,保留右边的

%在c语言中有站位之意,如%d,%s

${var%*//}

取得//右边的字符

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 表示)

ci@clinux:~$ var=http://www.aaa.com/123.htm
ci@clinux:~$ echo var
var
ci@clinux:~$ echo $var
http://www.aaa.com/123.htm
ci@clinux:~$ echo ${var#*//}
www.aaa.com/123.htm
ci@clinux:~$ echo ${var#*/}
/www.aaa.com/123.htm
ci@clinux:~$ echo ${var##*/}
123.htm
ci@clinux:~$ echo ${var%*/}
http://www.aaa.com/123.htm
ci@clinux:~$ echo ${var%/}
http://www.aaa.com/123.htm
ci@clinux:~$ echo ${var%/*}
http://www.aaa.com
ci@clinux:~$ echo ${var%%/*}
http:
ci@clinux:~$ echo ${var:1:1}
t
ci@clinux:~$ echo ${var:3:5}
p://w
ci@clinux:~$ echo ${var::5}
http:
ci@clinux:~$ echo ${var:5}
//www.aaa.com/123.htm
ci@clinux:~$ echo ${var:0-2:5}
tm
ci@clinux:~$ echo ${var:0-6:5}
23.ht
ci@clinux:~$ echo ${var:0-6}
23.htm
ci@clinux:~$ 

转载于:https://www.cnblogs.com/conncui/p/substring.html

shell 字符截取相关推荐

  1. Shell编程——字符截取命令

    字符截取命令 一.cut 格式: cut [选项] 文件名 参数: -f 列号: 提取第几列 -d 分隔符: 按照指定分隔符分割列 我们来演示一下,我们先建立一个文件,student.txt: ID ...

  2. shell字符串截取方法

    shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ...

  3. shell字符串截取总结

    shell中截取字符串的方法有很多中,本人对其中几种常用的进行整理总结. 0x01.grep 在文件中搜寻字符串匹配的行并输出 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式 ...

  4. shell字符串截取

    shell 字符串截取方法 1.从第几个索引开始,截取到最后 2.从第几个索引开始,截取指定长度字符 3.从倒数第几个位置开始,截取到最后 4.从倒数第几个位置开始,截取指定长度字符 5.从左开始匹配 ...

  5. shell各种截取*(要你想要的)

    脚本之家服务器常用软件源市场脚本云 手机版 投稿中心 关注微信 快捷导航  网站首页 网页制作 网络编程 脚本专栏 脚本下载 数据库 服务器 电子书籍 操作系统 网站运营 其它 vbs DOS/BAT ...

  6. Linux Shell字符串截取(非常详细):#左边开始截取、%右边开始截取、指定位置截取

    演示 Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取. 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串 ...

  7. oracle 并接去掉字符串,ORACLE删除字符-TRIM字符截取-substr查找字符-instr

    TRIM函数,最简单的功能就是来去除字符串的行首和行尾的空格,返回值类型是varchar2; 1.TRIM函数的完整语法描述 TRIM([{{LEADING | TRAILING | BOTH} [ ...

  8. thinkphp字符截取函数msubstr()

    ThinkPHP有一个内置字符截取函数msubstr()如下: msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true ...

  9. 自定义方法中英文字符截取

    //方法一:(借鉴于thinkphp中的中英文字符截取) function msubstr($str, $start=0, $length, $charset="utf-8", $ ...

最新文章

  1. [转]ESP8266使用详解
  2. maven中spring-boot-dependencies变量名冲突
  3. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...
  4. odd raio值 是什麼_乳化油相所需的HLB值
  5. 优秀的硕博士们,他们的朋友圈都有什么特点?
  6. java 字段构造函数_依赖注入–字段vs构造函数vs方法
  7. 骨干云池存储方式_你好,我存个对象(大误)漫谈对象存储
  8. 2021.08.22学习内容torch.cat()和torch.stack()函数
  9. 第五十节,面向对象基本介绍
  10. 进程线程与栈、堆的关系
  11. Nginx篇--解读nginx配置
  12. 【对抗攻击代码实战】对抗样本的生成——FGSM
  13. Linux Centos7 测试硬盘IO速度
  14. Coap协议(1)入门简介
  15. 【2018滴滴】寻找丑数
  16. 企业微信第三方应用开发小白版
  17. 小白操作Win10扩充C盘(把D盘内存分给C盘)亲测多次有效
  18. 对辛辛那提原始数据集(ims)数据划分正常,内圈故障,滚动体故障,外圈故障(python代码),可作为自己故障诊断模型实验的另一个数据集(因为CWRU普遍而言,准确度和被使用频率已经极高)
  19. Maya如何切换中英文
  20. 让人爱不释手的工具,每款都是高质量工具分享

热门文章

  1. linux 恢复与暂停进程
  2. 量化策略开发中的参数调优
  3. 数据分析初学者必备!10分钟搭建RFM客户价值模型,一学就会
  4. 深化管理、提升IT的数据平台建设方案
  5. 编译自定义的主题theme
  6. php5.5.35安装,如何安装php5
  7. python中inspect的用法(这个难懂,后期再补)
  8. linux java php_Linux PHP 搭建 JavaBridge
  9. 华为交换机命令 端口速率_华为交换机限速配置命令2016
  10. ajax响应码,ajax处理响应(三)(示例代码)