Brief Explanation: String and Array Slicing in Bash Shell Linux.

Today in this post, we will look how to do string or array slicing in bash shell linux by breaking the complete array/string into parts.

We have seen one example in our previous post here.

Here we will expand earlier article to understand the string slicing concepts in detail.

String Slicing (into Substrings)

Taking variable

a=NGELinux

1. Slice Beginning Characters

### Slice first character from string a
[root@nglinux ~]# echo ${a:1}
GELinux

### Slice 2 starting characters
[root@nglinux ~]# echo ${a:2}
ELinux

### Slice starting 4 characters
[root@nglinux ~]# echo ${a:4}
inux

2. Slice End Characters, or, Get Initial sub strings

### Get a substring from starting to 3 characters
[root@nglinux ~]# echo ${a::3}
NGE

### From starting to 4 characters
[root@nglinux ~]# echo ${a::4}
NGEL
[root@nglinux ~]# 

3. Get Last Sub Strings

### Get last three characters
[root@nglinux ~]# echo ${a: -3}
nux

### Get last 1 character
[root@nglinux ~]# echo ${a: -1}
x

4. Slice a Sub-String from start & end index

### Gets 5 characters after 3rd Character
[root@nglinux ~]# echo ${a:3:5}
Linux

### Gets 1 character after 3rd Character
[root@nglinux ~]# echo ${a:3:1}
L
[root@nglinux ~]# 

Bash Array Slicing (into sub-arrays)

Considering below array:

array=('Monday' 'Tuesday' 'Wensday' 'Thursday' 'Friday' 'Saturday' 'Sunday')

1. Slice beginning Array elements

### Omit 1st element from array
[root@nglinux ~]# echo ${array[@]:1}
Tuesday Wensday Thursday Friday Saturday Sunday

### Omit first three elements from array
[root@nglinux ~]# echo ${array[@]:3}
Thursday Friday Saturday Sunday
[root@nglinux ~]# 

2. Get Last Array Elements

### Get last element of Array.
[root@nglinux ~]# echo ${array[@]: -1}
Sunday

### Get last three elements of Array.
[root@nglinux ~]# echo ${array[@]: -3}
Friday Saturday Sunday
[root@nglinux ~]# 

3. Getting Sub-Arrays

### Get 2 elements starting from 2nd index of Array.
[root@nglinux ~]# echo ${array[@]:2:2}
Wensday Thursday

### Get 1 element starting from 2nd index of Array.
[root@nglinux ~]# echo ${array[@]:2:1}
Wensday
[root@nglinux ~]# 

Seems interesting, now you can slice any of the string or array in bash comfortably.

Do post your questions or suggestions below.

1
Leave a Reply

avatar
1 Comment threads
0 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
subham Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
subham
Guest
subham

Nice explanation