首页 > 技术文章 > shell一些方法

badboyf 2017-03-15 21:39 原文

字符串截取转自原文地址:http://www.jb51.net/article/56563.htm

一:字符串截取

有var变量:

var=http://www.aaa.com/123.htm

1. # 号截取,删除左边字符,保留右边字符。

echo ${var#*//}
www.aaa.com/123.htm

2. ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}
123.htm

3. %号截取,删除右边字符,保留左边字符

echo ${var%/*}
http://www.aaa.com

4. %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}
http:

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

echo ${var:0:5}    #其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
http:

6. 从左边第几个字符开始,一直到结束

echo ${var:7}   #其中的 7 表示左边第8个字符开始,一直到结束。
www.aaa.com/123.htm

7. 从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}                #其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
123

8. 从右边第几个字符开始,一直到结束。

echo ${var:0-7}                    #表示从右边第七个字符开始,一直到结束。
123.htm

 

判断字符串包含关系转自:http://www.cnblogs.com/ginsonwang/p/5525340.html

二:判断字符串包含

1

strA="long string"
strB="string"
result=$(echo $strA | grep "${strB}")
if [[ "$result" != "" ]]
then
    echo "包含"
else
    echo "不包含"
fi

2

strA="helloworld"
strB="low"
if [[ $strA =~ $strB ]]
then
    echo "包含"
else
    echo "不包含"
fi

3

A="helloworld"
B="low"
if [[ $A == *$B* ]]
then
    echo "包含"
else
    echo "不包含"
fi

4

thisString="1 2 3 4 5" # 源字符串
searchString="1 2" # 搜索字符串
case $thisString in 
    *"$searchString"*) echo Enemy Spot ;;
    *) echo nope ;;
esa

5

STRING_A=$1
STRING_B=$2
if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]]
    then
        ## is not substring.
        echo N
        return 0
    else
        ## is substring.
        echo Y
        return 1
    fi

 ln

ln -s src des

 unzip解压乱码

unzip -O CP936 xxx.zip (用GBK, GB18030也可以)

 vim文件忘记加sudo

:w !sudo tee %

 tar

tar zxvf <tar包> -C <dir>     解压到制定目录

 

推荐阅读