Bash Split String
Bash Split String
In Bash scripting, splitting a string is useful for various tasks that require breaking down a string into parts based on a delimiter.
Syntax
IFS='delimiter'
read -ra array <<< "$string"
The basic syntax involves setting the Internal Field Separator (IFS) to the delimiter and using the read
command with the -ra
option to read the string into an array.
Example Bash Split String
Let's look at some examples of how to split a string in Bash:
1. Split a String by Spaces
This script splits the string stored in the variable str
by spaces and prints each part.
#!/bin/bash
str="Hello World Bash Script"
IFS=' '
read -ra arr <<< "$str"
for element in "${arr[@]}"; do
echo "$element"
done
In this script, the variable str
is assigned the value 'Hello World Bash Script'. The Internal Field Separator (IFS) is set to a space. The read
command splits the string into an array arr
. The for loop iterates over each element in the array and prints it.
2. Split a String by Commas
This script splits the string stored in the variable str
by commas and prints each part.
#!/bin/bash
str="apple,banana,cherry"
IFS=','
read -ra arr <<< "$str"
for element in "${arr[@]}"; do
echo "$element"
done
In this script, the variable str
is assigned the value 'apple,banana,cherry'. The Internal Field Separator (IFS) is set to a comma. The read
command splits the string into an array arr
. The for loop iterates over each element in the array and prints it.
3. Split a String by a User-Specified Delimiter
This script prompts the user to enter a string and a delimiter, then splits the string by the specified delimiter and prints each part.
#!/bin/bash
read -p "Enter a string: " str
read -p "Enter the delimiter: " delimiter
IFS="$delimiter"
read -ra arr <<< "$str"
for element in "${arr[@]}"; do
echo "$element"
done
In this script, the user is prompted to enter a string and a delimiter. The Internal Field Separator (IFS) is set to the user-specified delimiter. The read
command splits the string into an array arr
. The for loop iterates over each element in the array and prints it.
Conclusion
Splitting a string in Bash is a fundamental task for breaking down a string into parts based on a delimiter in shell scripting. Understanding how to split strings can help you manage and manipulate strings effectively in your scripts.