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
  • 相关阅读:
    ios 数据类型转换 UIImage转换为NSData NSData转换为NSString
    iOS UI 12 block传值
    iOS UI 11 单例
    iOS UI 08 uitableview 自定义cell
    iOS UI 07 uitableviewi3
    iOS UI 07 uitableviewi2
    iOS UI 07 uitableview
    iOS UI 05 传值
    iOS UI 04 轨道和动画
    iOS UI 03 事件和手势
  • 原文地址:https://www.cnblogs.com/winditsway/p/14473116.html
Copyright © 2011-2022 走看看