Bash – Find number of occurrences of substring in string
To find number of occurrences of a substring in a string in Bash scripting, you can use echo, grep, and wc command, as shown in the following expression.
</>
Copy
echo "$str" | grep -o "$substr" | wc -l
- echo displays the given string
str - grep
-ooptions is used to print only the matched parts, each on a separate line wc -lprints the newline counts
Example
In the following script, we take a string in str and substring in substr. We count the number of occurrences of substring substr in string str, using the above specified expression.
example.sh
</>
Copy
#!/bin/bash
str="hello world as world new world"
substr="world"
count=$(echo "$str" | grep -o "$substr" | wc -l)
echo "Number of occurrences : $count"
Bash Version: GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin22.1.0)
Output
sh-3.2# bash example.sh
Number of occurrences : 3
Conclusion
In this Bash Tutorial, we learned how to find the number of occurrences of substring in given string using echo, grep, and wc commands.
