4.20 文本切片与参数操作
这则攻略考查了一些简单的文本替换技术以及Bash中可用的参数扩展简写法。这些简单的技巧通常能够让我们免于敲入多行代码之苦。
4.20.1 实战演练
就用下面的任务练练手吧。
替换变量内容中的部分文本:
- $ var="This is a line of text"
- $ echo ${var/line/REPLACED}
- This is a REPLACED of text"
line
被REPLACED
替换。
我们可以通过指定字符串的起始位置和长度来生成子串,语法如下:
${variable_name:start_position:length}
用下面的命令可以打印第5个字符之后的内容:
- $ string=abcdefghijklmnopqrstuvwxyz
- $ echo ${string:4}
- efghijklmnopqrstuvwxyz
从第5个字符开始,打印8个字符:
- $ echo ${string:4:8}
- efghijkl
起始字符的索引从0开始计数。我们也可以从后向前计数,将最后一个字符索引记为 -1
。但如果使用负数作为索引值的话,必须将负数放入括号内,例如(-1)
就是最后一个字符的索引。
- echo ${string:(-1)}
- z
- $ echo ${string:(-2):2}
- yz
4.20.2 参考
4.10节讲解了从单词中切分字符。