(原创)shell中进行文本切片与参数操作

发布时间:2020-12-25编辑:脚本学堂
本文介绍的内容,考查了一些简单的文本替换技术及bash中可用的参数扩展简写法。这些简单的技巧通常能够让我们免于敲入多行代码之苦。

原创文章,转载请注明出处:脚本学堂,否则追究法律责任。脚本学堂首发!
作者:isbadboy

本文介绍的内容,考查了一些简单的文本替换技术及bash中可用的参数扩展简写法。
这些简单的技巧通常能够让我们免于敲入多行代码之苦。

注意看以下的实例,强烈建议你在学习时,自己动手实践一下。

替换变量内容中的部分文本:
 

复制代码 代码如下:
$ 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