shell中截取字符串的方法有很多中,

${expression}一共有9种使用方法。
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word} 
上面4种可以用来进行缺省值的替换。
${#parameter}
上面这种可以获得字符串的长度。 
${parameter%word} 最小限度从后面截取word
${parameter%%word} 最大限度从后面截取word
${parameter#word} 最小限度从前面截取word
${parameter##word} 最大限度从前面截取word
上面4个就是用来截取字符串的方法了。

有了着四种用法就不必使用cut命令来截取字符串了

第一种又可以分为四种情况,下面一一介绍。

1、使用 # 号操作符。用途是从左边开始删除第一次出现子字符串即其左边字符,保留右边字符。用法为#*substr,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str#*//}

得到的结果为www.你的域名.com/cut-string.html,即删除从左边开始到第一个"//"及其左边所有字符2、使用 ## 号操作符。用途是从左边开始删除最后一次出现子字符串即其左边字符,保留右边字符。用法为##*substr,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str##*/}

得到的结果为cut-string.html,即删除最后出现的"/"及其左边所有字符3、使用 % 号操作符。用途是从右边开始删除第一次出现子字符串即其右边字符,保留左边字符。用法为%substr*,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str%/*}

得到的结果为http://www.你的域名.com,即删除从右边开始到第一个"/"及其右边所有字符4、使用 %% 号操作符。用途是从右边开始删除最后一次出现子字符串即其右边字符,保留左边字符。用法为%%substr*,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${str%%/*}

得到的结果为http://www.你的域名.com,即删除从右边开始到最后一个"/"及其右边所有字符第二种也分为四种,分别介绍如下:

1、从左边第几个字符开始以及字符的个数,用法为:start:len,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:2、从左边第几个字符开始一直到结束,用法为:start,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${var:7}

其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:

str='http://www.你的域名.com/cut-string.html'
echo ${str:0-15:10}

其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string3、从右边第几个字符开始一直到结束,用法:0-start,例如:

str='http://www.你的域名.com/cut-string.html'
echo ${str:0-4}

其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:html注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

网上其它参考内容

一、Linux shell 截取字符变量的前8位,有方法如下:
1.expr substr “$a” 1 8
2.echo $a|awk ‘{print substr(,1,8)}’
3.echo $a|cut -c1-8
4.echo $
5.expr $a : ‘(.\).*’
6.echo $a|dd bs=1 count=8 2>/dev/null

二、按指定的字符串截取
1、第一种方法:
${varible##*string} 从左向右截取最后一个string后的字符串
${varible#*string}从左向右截取第一个string后的字符串
${varible%%string*}从右向左截取最后一个string后的字符串
${varible%string*}从右向左截取第一个string后的字符串
“*”只是一个通配符可以不要

例子:
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg

2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。

可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:
$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

三、按照指定要求分割:
比如获取后缀名
ls -al | cut -d “.” -f2

shell截取字符串方法相关推荐

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

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

  2. linux shell 截取 第一个位置到最后一个冒号的数据,[shell]截取字符串

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

  3. JAVA截取字符串方法

    //截取字符串方法 public static void main(String[] args) { String str="QW/E1/2/45"; //寻找最后一个" ...

  4. php str pa,php截取字符串方法有哪些

    php截取字符串方法有:1.使用substr函数截取字符串:2.使用mb_substr函数截取字符串:3.使用自定义的"function mysubstr($str, $start, $le ...

  5. C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...

  6. c++语言截取字符串,详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos) ...

  7. vue 截取字符串方法

    vue 截取字符串方法 shutStr(){const str = 'abcdef';str = str.slice(0); //返回整个字符串 abcdefstr = str.substring(0 ...

  8. String 截取字符串方法——subString()

    String 截取字符串方法subString() String可以使用substring方法进行截取字符串有两种,参数可输入一个或者两个: 单参数:public String substring(i ...

  9. web前端js基础之js的几种“截取字符串”方法

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. Udacity机器人软件工程师课程笔记(六)-样本搜索和找回-基于漫游者号模拟器-优化和样本找回
  2. 第一课时之HTML简介
  3. oracle中rac是什么意思,Oracle中HA、RAC、Datagurad区别
  4. ActiveMQ运行失败 not running
  5. 【渝粤题库】陕西师范大学163213 景区管理 作业(专升本)
  6. 使用angrutils生成控制流图出错的解决过程
  7. 计算机病毒怎么取消,电脑病毒恶意软件无法删除。怎么办?
  8. OpenGL Assimp的骨骼动画
  9. php ajax data遍历,jquery,ajax_each遍历 ajax 如何倒序插入数据库,jquery,ajax - phpStudy
  10. GeckoView:Mozilla面向移动浏览器打造的渲染引擎
  11. 前端性能优化(四)——网页加载更快的N种方式
  12. 打印快递单不显示收货人省市区,提供两种解决方案
  13. FinClip11月产品更新:FIDE 插件开发功能优化;开发者文档英文版上线
  14. 掌握这几个关键点,玩转IC芯片数据手册和检测攻略
  15. 单片机开发,口袋秤单片机芯片的开发流程
  16. SAP smw0上传Excel模板
  17. 北京迅为IMX6ULL开发板 DHT11网络编程实战练习
  18. windows下tcp网络传输
  19. 高通android9 lanucher3
  20. 计算机如何新建一个用户名,win10电脑怎样创建另一个账户

热门文章

  1. 如何去掉latex中默认显示的日期
  2. 喻国明:“元宇宙”背后的未来图景
  3. 剑桥大学2020《AI全景报告》出炉,177页ppt
  4. Nature:“巨型原子”使芯片同时处理和收发量子信息成为可能
  5. 亚洲与非洲:中国支付巨头的海外进击
  6. 2018年全球自动驾驶法律政策研究 | 附报告下载
  7. 透视 CES 2018:不容错过的四大科技趋势
  8. 如果计算机语言是中国人发明的 | 每日趣闻
  9. IT人的眼睛就是一把尺!
  10. 官宣:程序员被纳入新生代农民工!