Search code examples
bashshellstringsplit

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


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.