2

I am trying to do this

text1="word1 word2 word3"
text2="word4 word5"
text1="word6 word7 word8"

for var in $text1 $text2 $text3
do
  echo $var" in "(__?__)
done

expected output

word1 in text1
word2 in text1
...
word4 in text2
...
word8 in text3
  1. script will be executed with dash -> so no bashisms allowed
  2. I am aware that shell is not a tool for text processing
  3. does the loop concatenate $text1 $text2 $text3 before iterating or not ?

1 Answer 1

1
text1="word1 word2 word3"
text2="word4 word5"
text3="word6 word7 word8"
set -f #disable globbing in unquoted var expansions (optional) 
for i in text1 text2 text3; do
    eval "j=\$$i" #i holds name, $j holds the fields
    for k in $j; do #k holds a field
        echo "$k in $i"
    done
done

Output:

word1 in text1
word2 in text1
word3 in text1
word4 in text2
word5 in text2
word6 in text3
word7 in text3
word8 in text3

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.