zoukankan      html  css  js  c++  java
  • Learning_the_bash_Shell_Third_Edition 5/n

    Patterns and Pattern Matching

     wildcard(通配符)

    Operator

    Meaning

    ${variable#pattern}

    If the pattern matches the beginning of the variable’s value, delete the shortest part that matches and return the rest.

    ${variable##pattern}

    If the pattern matches the beginning of the variable’s value, delete the longest part that matches and return the rest.

    ${variable%pattern}

    If the pattern matches the end of the variable’s value, delete the shortest part that matches and return the rest.

    ${variable%%pattern}

    If the pattern matches the end of the variable’s value, delete the longest part that matches and return the rest.

    ${variable/pattern/string}

    The longest match to pattern in variable is replaced by string. In the first form, only the first match is replaced. In the second form, all matches are replaced. If the pattern begins with a #, it must match at the start of the variable. If it begins with a %, it must match with the end of the variable. If string is null, the matches are deleted. If variable is @ or *, the operation is applied to each positional parameter in turn and the expansion is the resultant list.

    ${variable//pattern/string}

    The longest match to pattern in variable is replaced by string. In the first form, only the first match is replaced. In the second form, all matches are replaced. If the pattern begins with a #, it must match at the start of the variable. If it begins with a %, it must match with the end of the variable. If string is null, the matches are deleted. If variable is @ or *, the operation is applied to each positional parameter in turn and the expansion is the resultant list.

    The classic use for pattern-matching operators is in stripping off components of pathnames, such as directory prefixes and filename suffixes. With that in mind, here is an example that shows how all of the operators work. Assume that the variable path has the value /home/cam/book/long.file.name; then:

    Expression Result
    ${path##/*/} long.file.name
    ${path#/*/} cam/book/long.file.name
    $path /home/cam/book/long.file.name
    ${path%.*} /home/cam/book/long.file
    ${path%%.*} /home/cam/book/long
  • 相关阅读:
    4.状态简览
    3.获取git仓库
    2.获取帮助
    1.初次运行git前的配置
    linux命令总结
    使用github参与到开源项目的维护
    mongodb远程连接
    springmvc/springboot处理前台字符串日期自动转换成后台date类型的三种办法
    事务明明配置没有问题,出错时却不执行回滚
    tmux 安装
  • 原文地址:https://www.cnblogs.com/winditsway/p/14473116.html
Copyright © 2011-2022 走看看