Friday, January 26, 2024

[SOLVED] How to split one string into multiple strings separated by at least one space in bash shell?

Issue

I have a string containing many words with at least one space between each two. How can I split the string into individual words so I can loop through them?

The string is passed as an argument. E.g. ${2} == "cat cat file". How can I loop through it?

Also, how can I check if a string contains spaces?


Solution

Did you try just passing the string variable to a for loop? Bash, for one, will split on whitespace automatically.

sentence="This is   a sentence."
for word in $sentence
do
    echo $word
done

 

This
is
a
sentence.


Answered By - mob
Answer Checked By - Timothy Miller (WPSolving Admin)