zoukankan      html  css  js  c++  java
  • Shell学习笔记:#*、%*字符串掐头去尾方法

    一、语法
      在shell中可以通过#、%对字符串进行掐头去尾操作,使用方法如下:
    • # 表示掐头
    • % 表示去尾
    • 单个#或%表示最小匹配
    • 双个$或%表示最大匹配
     二、例子1
      假设我们定义一个变量为:
    filename=/dir1/dir2/dir3/my.file.txt

      可以通过${ }分别替换得到不同的值:

    • ${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
    • ${file##*/}:删掉最后一个 / 及其左边的字符串:my.file.txt
    • ${file#*.}:删掉第一个 . 及其左边的字符串:file.txt
    • ${file##*.}:删掉最后一个 . 及其左边的字符串:txt
    • ${file%/*}:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
    • ${file%%/*}:删掉第一个 / 及其右边的字符串:(空值)
    • ${file%.*}:删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
    • ${file%%.*}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
    三、例子2
      用户名/密码@IP:str=user_name/"password"@192.168.100.100 8080
    • str2=${str##*/}
    • ip=${str2##*@}
    • username=${str%%/*}
    • password=${str2%%@*}
    四、其他

    1.截取子字符集

    echo ${filename:0:5}:提取最左边的5个字符,/dir1
    echo ${filename:5:5}:提取第5个字符开始的连续5个字符,/dir2

    2.替换字符

    echo ${filename/dir/path}:将第一个dir替换成path,/path1/dir2/dir3/my.file.txt

    echo ${filename//dir/path}:将全部dir替换成path,/path1/path2/path3/my.file.txt

    3.长度计算

    echo ${#filename}:返回变量值的长度


    END 2018-08-20 16:37:52
  • 相关阅读:
    Django rest_framework实现增删改查接口
    文件的三种打开方式知识点回顾
    Django中基表的创建、外键字段属性简介、脏数据概念、子序列化
    drf序列化与反序列化作业1
    rest_framework序列化与反序列化1
    APIview的请求生命周期源码分析
    sql
    正则上面的一个坑
    多线程与多进程---方法对比与使用
    网络编程----踩坑篇
  • 原文地址:https://www.cnblogs.com/hider/p/9506380.html
Copyright © 2011-2022 走看看