Shell中取子串的方法

Shell中提供了丰富的文本处理工具,解决问题的方法也会有很多种。那么在Shell中如何获取子串呢?
比如我们要取"linuxsong"中的"linux",也就是从第1位开始,取5个字符,看看下面的几种方法:

1.简单常用的方法
$ expr substr "linuxsong" 1 5
linux

2.直接变量截取
$ a="linuxsong"
$ echo ${a:0:5}
linux

3.用cut截取字符串
$ echo "linuxsong" | cut -c 1-5 #取第1-5个字符
linux

4.awk取子串
$ echo "linuxsong" | awk '{print substr($0,1,5)}'
linux

5.head取子串
$ echo "linuxsong" | head -c5
linux

除此之外还有很多其它方法,在这里推荐第1、2种方法。其它的例子主要是为了说明Shell处理文本的方便,为大家提供一种思路,只有想不到的,没有做不到的:)