Bash string manipulation involves using parameter expansion to modify the value of a variable. Here are some common string manipulation techniques in bash:
Removing a substring from the front of a string
Remove shortest match of a pattern from the front
var="System Commands"
echo ${var#* }
This removes the shortest match of *
(anything followed by a space) from the beginning of the string, resulting in Commands
.
Remove longest match of a pattern from the front
var="System Commands are useful"
echo ${var##* }
This removes the longest match of *
from the beginning of the string, resulting in useful
.
Removing a substring from the end of a string
Remove shortest match of a pattern from the end
var="System Commands"
echo ${var% *}
This removes the shortest match of *
(space followed by anything) from the end of the string, resulting in System
.
Remove longest match of a pattern from the end
var="System Commands are useful"
echo ${var%% *}
This removes the longest match of *
from the end of the string, resulting in System
.
Extracting a substring
Extract substring from position
var="System Commands"
echo ${var:0:6}
This extracts 6 characters starting from position 0, resulting in System
.
Length of a string
var="System Commands"
echo ${#var}
This returns the length of the string, which is 15
.
Replacing part of a string
Replace first match
var="System Commands"
echo ${var/Commands/Operations}
This replaces the first occurrence of Commands
with Operations
, resulting in System Operations
.
Replace all matches
var="System Commands Commands"
echo ${var//Commands/Operations}
This replaces all occurrences of Commands
with Operations
, resulting in System Operations Operations
.
Example for extracting the first word using string manipulation
To extract the first word from a string, you can use:
var="System Commands"
echo ${var%% *}
This removes everything from the first space to the end of the string, effectively extracting the first word, resulting in System
.
These techniques allow you to manipulate strings in various ways directly within bash scripts, providing powerful tools for text processing without needing external utilities.
Discover more from Coursity
Subscribe to get the latest posts sent to your email.