【发布时间】:2015-06-11 15:00:33
【问题描述】:
我正在尝试读取并显示文本文件中的每个单词,然后突出显示指定的元音或辅音。
当我从文件中读取时,我只能读取整行,所以我使用循环来读取行中的每个单词。但是,当我这样做时,我无法访问该单词中的不同位置。 (例如,如果单词是“happy”,我无法访问字母“a”的第二个位置)
#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等都是空的。
【问题讨论】: