Я пытаюсь читать и отображать каждое слово в текстовом файле, а затем выделять указанный гласный или согласный.Как сопоставить строковые значения из текстового файла в скрипте bash
Когда я читаю из файла, я могу читать только целую строку, поэтому я использовал цикл для чтения каждого слова в строке. Однако, когда я это делаю, я не могу получить доступ к различным позициям в этом слове. (Например, если слово «счастливый» Я не могу получить доступ к 2-ой positon для буквы «а»)
#READS EACH LINE
while read line
do
#READS EACH WORD IN THE LINE
for word in $line
do
#LOOPS THROUGH EACH CHARACTER IN THE WORD
for ((i=0; i<${#word}; i++))
do
#LOOPS THROUGH ALL VALUES IN VOWEL ARRAY
for ((j=0; j<10; j++))
do
#MATCHES IF A VOWEL IS FOUND
if [ "${word[$i]}" == "${varray[$j]}" ]
then
let vcount++
echo i:$i j:$j
echo word: ${word[$i]} varray: ${varray[$j]} #DEBUG
fi
done
done
#MORE CODE HERE DOING STUFF PRINTING TO SCREEN
done
done < $file
Есть ли что-то я делаю не так? или мне нужно читать файл по-другому, чтобы получить доступ к каждому символу слова?
Когда я echo
слово в двойном for loop
, оно отображает целое слово в качестве первой позиции вместо первого символа. Остальные позиции 2, 3 и т. Д. Пустые.
Благодарю вас за ответ, он уточнил для меня немного больше. Мне удалось заставить мой скрипт соответствовать гласным: D. Теперь, когда я добавляю IF-инструкции с разными условиями в зависимости от количества гласных, он всегда входит в один и тот же оператор IF независимо от того, есть ли 1, 2 или нет гласных? – hotlinks0