by Sai gowtham

How to remove the last n characters of a string in Bash

In this tutorial, we are going to learn about how to remove the last n characters of a string in Bash.

Consider, we have the following string.

country="portugal"

Now, we want to remove the last 3 characters gal from the above string.

Removing the last n characters

To remove the last n characters of a string, we can use the parameter expansion syntax ${str::-n} in the Bash shell.

-n is the number of characters we need to remove from the end of a string.

Here is an example that removes the last 3 characters from the following string:

country="portugal"
modified=${country::-3}

echo $modified

Output:

"portu"

you can also remove the last 4 characters of a string like this:

country="portugal"
modified=${country::-4}

echo $modified # "port"

Alternatively, we can also use the following syntax to remove the last n characters of a string.

country="portugal"
modified=${country%????}

echo $modified # "port"

In the above syntax, % specifies to remove the character from the end of a string that matches the glob pattern ? (that is any character).

Top Udemy Courses

JavaScript - The Complete Guide 2020 (Beginner + Advanced)
JavaScript - The Complete Guide 2020 (Beginner + Advanced)
45,614 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
284,472 students enrolled
40 hours of video content
View Course
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
130,921 students enrolled
48.5 hours of video content
View Course