举例变量:url=http://www.baidu.com/123456.html

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

echo ${url#*//}

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

# 即删除 http://
# 结果是 :www.baidu.com/.html

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

echo ${url##*/}
# ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
# 即删除 http://www.baidu.com/
# 123456.html

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

echo ${url%/*}
# %/* 表示从右边开始,删除第一个 / 号及右边的字符 # 结果是:http://www.baidu.com

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

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

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

echo ${url::}
# 其中的 表示左边第一个字符开始, 表示字符的总个数。
# 结果是:http:

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

echo ${url:}
# 其中的 表示左边第8个字符开始,一直到结束。
# 结果是 :www.baidu.com/.html

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

echo ${url:-:}
# 其中的 - 表示右边算起第11个字符开始, 表示字符的个数。
# 结果是:

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

echo ${url:-}
# 表示从右边第11个字符开始,一直到结束。
# 结果是:.html # 注:(左边的第一个字符是用 表示,右边的第一个字符用 - 表示)

shell截取字符串操作的更多相关文章

  1. Linux Shell 截取字符串

    Linux Shell 截取字符串 shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%/*} ${var%%/*} ${var:start:len} ${var: ...

  2. shell截取字符串的方法

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  3. LoadRunner截取字符串操作

    LoadRunner截取字符串操作 在使用LoadRunner winsockets协议写脚本,遇到下面问题: 在接收到的查询数据库的结果中我要取红色部份用于下面的select recv buf60 ...

  4. shell截取字符串的8种方法

    参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${ex ...

  5. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  6. shell脚本—— 字符串操作(长度,查找,替换)

    表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有 ...

  7. inux中shell截取字符串方法总结

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

  8. linux中shell截取字符串方法总结

    截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=wo ...

  9. shell截取字符串方法

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

随机推荐

  1. [Beta]Scrum Meeting#7

    github 本次会议项目由PM召开,时间为5月12日晚上10点45分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客整理文档 撰写博客整理文档 swoip 为适应新功能调整布局 ...

  2. 树莓派3B+红外配置

    sudo apt-get install lirc /etc/lirc/lirc_options.conf #driver = devinput driver = default #device = ...

  3. Mstar 平台(648)唤醒之串口唤醒

    串口唤醒功能主要是从supernova 待机进入PM后,串口接收PC端口发送过来的特定字串,然后将主板唤醒的功能.与IR,KEYPAD,WOL,CEC,MHL 等等基本流程一致,触发源不一样而已. 待 ...

  4. 011 webpack中使用vue

    一:在webpack中使用vue 1.安装vue的包 2.index.html <!DOCTYPE html> <html lang="en"> <h ...

  5. python MySQLdb 字典(dict)结构数据插入mysql

    背景: 有时候直接操作数据库字段比较多,一个个写比较麻烦,而且如果字段名跟数据库一致,那生成为字典后,是否能直接使用字典写入数据库呢,这样会方便很多,这里简单介绍一种方法. 实例: 1. 假设数据库表 ...

  6. C语言宏应用-------#define STR(X) #X

    C语言宏应用-------#define STR(X) #X   #:会把参数转换为字符串 #define STR(x) #x #define MAX 100 STR(MAX) 会被扩展成" ...

  7. java中为什么notify()可能会导致死锁,而notifyAll()则不会

    简单的说,notify()只唤醒一个正在等待的线程,当该线程执行完以后施放该对象的锁,而没有再次执行notify()方法,则其它正在等待的线程 则一直处于等待状态,不会被唤醒而进入该对象的锁的竞争池, ...

  8. Mybatis出错: Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.cyf.pojo.User with invalid types () or values ()

    org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ib ...

  9. 安装Dubbo-admin

    1.下载dubbo源码 源码地址为github上的地址,可以使用git或者直接下载压缩包.https://github.com/alibaba/dubbo/tree/2.5.x 2.下载完之后的目录结 ...

  10. elasticsearch中mapping的_source和store的笔记(转)

    原文地址: https://www.cnblogs.com/zklidd/p/6149120.html 0.故事引入 无意中看到了ES的mapping中有store字段,作为一个ES菜鸡,有必要对这个 ...