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).