2018年1月18日 星期四

Bash Shell | 如何取出子字串 Substring Expansion

想要取出子字串 (Substring) 可以使用如下的方式

${Parameter:offset}
${Parameter:offset:length}

offset
正值: 表示從變數 Parameter 之字串值的左邊開始算
負值: 表示從變數 Parameter 之字串值的右邊開始算

length
正值: 表示要取的子字串長度
省略: 表示取到字串結尾

注意:
1. offset 是負值時要與前面冒號間隔一個空白,否則會被當成${Parameter:-word}
2. offset 與 length 可以使用 Shell Arithmetic

範例:

#!/bin/sh

var0="01234567890"

echo \${var0} = ${var0}
echo \${var0:3} = ${var0:3}
echo \${var0:3:4} = ${var0:3:4}
echo \${var0: -6} = ${var0: -6}
echo \${var0: -6:3} = ${var0: -6:3}
echo \${var0:$(( 1+1 )):$(( 2+2 ))} = ${var0:$(( 1+1 )):$(( 2+2 ))}

結果:

${var0} = 01234567890
${var0:3} = 34567890
${var0:3:4} = 3456
${var0: -6} = 567890
${var0: -6:3} = 567
${var0:2:4} = 2345

沒有留言:

張貼留言