Featured image of post shell字符串截取

shell字符串截取

前言

之前一直没太认真琢磨。觉得网上有,不会的百度下。就是抱着这种态度,简单的几个技巧现在才一知半解。

正题

shell脚本字符串截取我大概想到有如下几种方式:

  1. sed
  2. awk
  3. cut
  4. 通过# % 截取(不知道应该叫什么方法)

本文详细说明下第4种方式。为什么不说前三种呢,我个人觉得前三个命令用来截取字符串有点高射炮打蚊子。

  1. # 号截取,删除左边字符,保留右边字符,匹配第一个
eg:
var=http://www.vr7jj.com/api
str=${var#*/}

最后str为 /www.vr7jj.com/api

  1. ## 号截取,删除左边字符,保留右边字符,匹配最后一个
eg:
var=http://www.vr7jj.com/api
str=${var##*/}

最后str为 api

  1. % 号截取,删除右边字符,保留左边,匹配第一个
eg:
var=http://www.vr7jj.com/api
str=${var%/*}

最后str为 http://www.vr7jj.com

  1. %% 号截取,删除右边字符,保留左边,匹配最后一个
eg:
var=http://www.vr7jj.com/api
str=${var%%/*}

最后str为 http:

  1. 扩展 按位截取
eg:
var=http://www.vr7jj.com/api
str1=${var:0:4} #左边第0个字符开始截3个数 结果 http
str2=${var:7} #左边第7个字符一直到结束 结果 www.vr7jj.com/api
str3=${var:0-15:10}#右边第15个字符开始取10位
str4=${var:0-6}#右边第几个字符开始一直到结束

总结

记忆方法 # 号脚本中用于注释常在行开头左边。所以#是从左边开发截取; %反这从右边截取。(用的少了,脑子不好使,常忘记)

Licensed under CC BY-NC-SA 4.0
最后更新于 2024-05-03 07:44 -0400