• shell变量字符串截取


    假设有变量

    url=http://www.baidu.com/index.html

    <1>#号截取----删除左边的字符,保留右边的字符

    [root@MiWiFi-R3-srv ~]# echo "${url#*//}"
    www.baidu.com/index.html

    <2>##号截取----删除左边的字符,保留右边的字符

    [root@MiWiFi-R3-srv ~]# echo "${url##*/}"
    index.html

    ---->#号截取和##号截取的区别:

    可以看到上面的变量值并不是只有1个单一的字符,如字母(w,i等等).#和##的区别就是在这里

    [root@MiWiFi-R3-srv ~]# url=http://www.baidu.com/index.html
    [root@MiWiFi-R3-srv ~]# echo "${url#*i}"
    du.com/index.html
    [root@MiWiFi-R3-srv ~]# echo "${url##*i}"
    ndex.html

    "#"是从找到的第一个对象开始截取(从左往右数)

    "##"是从找到的最后一个对象开始截取(从左往右数)

    <3>%号截取----删除右边的字符,保留左边的字符

    [root@MiWiFi-R3-srv ~]# echo "${url%i*}"
    http://www.baidu.com/

    <4>%%号截取----删除右边的字符,保留左边的字符

    [root@MiWiFi-R3-srv ~]# echo "${url%%i*}"
    http://www.ba

    ---->注意:

    注意运算符"*"的位置

    注意"%"也是从找到的第一个对象开始截取。但是顺序是从右向左查找的

    注意"%%"也是从找到的最后一个对象开始截取。但是顺序从右向左查找的

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

    [root@MiWiFi-R3-srv ~]# echo "${url:0:2}"
    ht

    ---->0表示的是开始位置,逻辑相当于Python的列表索引

    [root@MiWiFi-R3-srv ~]# echo "${url:2}"
    tp://www.baidu.com/index.html

    从索引位置到结尾

    <6>从右边的第几个字符开始,及字符的个数

    [root@MiWiFi-R3-srv ~]# echo "${url:0-4:4}"
    html

    ---->"0-4"表示从右向左第四个字符开始,"4"表示字符的个数(从左到右的)

    [root@MiWiFi-R3-srv ~]# echo "${url:0-7}"
    ex.html

    ---->从"0-7"的位置到结尾

  • 相关阅读:
    Django Rest framework基础使用之Request/Response
    Django Rest framework基础使用之 serializer
    python基础(一)
    python实现本地图片上传到服务区
    开发中遇到的问题记录
    九、xadmin菜单分组管理
    leetcode-7-整数翻转
    leetcode-6-Z 字形变换
    leetcode-5-最长回文子串
    leetcode-3-无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/thebear/p/7755524.html
Copyright © 2020-2023  润新知