zoukankan      html  css  js  c++  java
  • shell 字符串操作的几个例子

    shell 字符串操作的几个例子,包括取长度,读取内容,删除字符串,字符串的替换。

    1.长度
    [ttoy@tttt ~]$ test='I love china'
    [ttoy@tttt ~]$ echo
    ${#test}
    12

    ${#变量名}得到字符串长度

    2.截取字串
    [ttoy@localhost ~]$ test='I love china'
    [ttoy@localhost ~]$ echo
    ${test:5}    
    e china
    [ttoy@localhost ~]$ echo ${test:5:10}
    e
    china

    ${变量名:起始:长度}得到子字符串

    3.字符串删除
    [ttoy@localhost ~]$ test='c:/windows/boot.ini'
    [ttoy@localhost ~]$
    echo ${test#/}
    c:/windows/boot.ini
    [ttoy@localhost ~]$ echo
    ${test#*/}
    windows/boot.ini
    [ttoy@localhost ~]$ echo
    ${test##*/}
    boot.ini

    [ttoy@localhost ~]$ echo ${test%/*}
    c:/windows
    [ttoy@localhost
    ~]$ echo ${test%%/*}

    ${变量名#substring正则表达式}从字符串开头开始配备substring,删除匹配上的表达式。

    ${变量名%substring正则表达式}从字符串结尾开始配备substring,删除匹配上的表达式。

    注意:${test##*/},${test%/*} 分别是得到文件名,或者目录地址最简单方法。

    4.字符串替换
    [ttoy@localhost ~]$ test='c:/windows/boot.ini'
    [ttoy@localhost ~]$
    echo ${test/\//\\}
    c:\windows/boot.ini
    [ttoy@localhost ~]$ echo
    ${test//\//\\}
    c:\windows\boot.ini

    ${变量/查找/替换值} 一个“/”表示替换第一个,”//”表示替换所有,当查找中出现了:”/”请加转义符”\/”表示。

    附:shell 字符串操作的高级变量
    ${#string}$string的长度
    ${string:position}在$string中, 从位置$position开始提取子串
    ${string:position:length}在$string中, 从位置$position开始提取长度为$length的子串
    ${string#substring}从变量$string的开头, 删除最短匹配$substring的子串
    ${string##substring}从变量$string的开头, 删除最长匹配$substring的子串
    ${string%substring}从变量$string的结尾, 删除最短匹配$substring的子串
    ${string%%substring}从变量$string的结尾, 删除最长匹配$substring的子串
    ${string/substring/replacement}使用$replacement, 来代替第一个匹配的$substring
    ${string//substring/replacement}使用$replacement, 代替所有匹配的$substring
    ${string/#substring/replacement}如果$string的前缀匹配$substring,
    那么就用$replacement来代替匹配到的$substring ${string/%substring/replacement} 如果$string的后缀匹配$substring,那么就用$replacement来代替匹配到的$substring

    说明:"*
    $substring”可以是一个正则表达式.
  • 相关阅读:
    MIne FirstBlog
    P6563 [SBCOI2020]一直在你身旁
    P6563 [SBCOI2020]一直在你身旁
    T122085 [SBCOI2020]时光的流逝
    LC 918. Maximum Sum Circular Subarray
    1026 Table Tennis
    LC 1442. Count Triplets That Can Form Two Arrays of Equal XOR
    LC 1316. Distinct Echo Substrings
    LC 493. Reverse Pairs
    1029 Median (二分)
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/2952337.html
Copyright © 2011-2022 走看看