linux系统中字符串的截取方法有很多种,可以用正则表达式结合cut awk等实现,也可以用shell或者python字符串的特性实现,本文主要介绍shell 及python字符串的特性是如何实现的

一、shell 字符串截取的方式

${expression}一共有9种使用方法。
${parameter:-word}
${parameter:=word}
${parameter:?word}
${parameter:+word}
上面4种可以用来进行缺省值的替换,替换方式如下:

${parameter:-word}

如果parameter为null或者未设置,整个参数替换表达式值为word

${parameter:=word}

如果parameter为null或者未设置,整个参数替换表达式值为word,并且parameter参数值设置为word

${parameter:?word}

如果parameter为null或者未设置,则打印出错误信息。否则,整个参数替换表达式值为$parameter

${parameter:+word}

如果parameter不为null或者未设置,则整个参数替换表达式值为word


2. ${#parameter}
上面这种可以获得字符串的长度。
${parameter%word} 最小限度从后面截取word
${parameter%%word} 最大限度从后面截取word
${parameter#word} 最小限度从前面截取word
${parameter##word} 最大限度从前面截取word

3.${parameter:0:n}--

${parameter:offset}

${parameter:offset:length}

  1. 从左边第几个字符开始以及字符的个数,用法为:start:len,例如:

    str='http://www.你的域名.com/cut-string.html'

    echo ${var:0:5}

    其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
    结果是:http:

2、从左边第几个字符开始一直到结束,用法为:start,例如:

str='http://www.你的域名.com/cut-string.html'

echo ${var:7}

其中的 7 表示左边第8个字符开始
结果是:www.你的域名.com/cut-string.html

3、从右边第几个字符开始以及字符的个数,用法:0-start:len,例如:

str='http://www.你的域名.com/cut-string.html'
echo ${str:0-15:10}

其中的 0-6 表示右边算起第6个字符开始,10 表示字符的个数。
结果是:cut-string3、从右边第几个字符开始一直到结束,用法:0-start,例如:

str='http://www.你的域名.com/cut-string.html'
echo ${str:0-4}


4.主要是针对变量的

${!prefix*}

${!prefix@}

将带有前缀为prefix的参数名打印出来

${!name[@]}

${!name[*]}

这个是针对name数组的,打印出来name数组有哪些下标


二 python 字符串的截取

Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

str = '12345678'  

print str[0:1]  

>> 1          # 输出str位置0开始到位置1以前的字符  

print str[1:6]        

>> 23456          # 输出str位置1开始到位置6以前的字符  

num = 18  

str = '0000' + str(num) # 合并字符串  print str[-5:]      # 输出字符串右5位  

>> 00018