编写不同的文本处理和文本操作脚本的时候,需要对文件中的字符,单词,行进行迭代
将一个简单的循环用于迭代,加上stdin的重定向,就是对文件中的行,单词或者字符进行迭代的基本方式
我们对行,单词,字符进行迭代
迭代文件中的每一行,
我们可以使用一个while循环从标准输入中读取,每一次迭代会读取一行
while read line
do
echo $line
done < file.txt
子shell也可以做到
cat file.txt |
(while read line; do echo $line; done )
命令中的cat file.txt 可以使用任何命令序列的输出来替换
迭代每一行中的单词
for word in $line;
do
echo $word;
done
迭代一个单词中的每一个字符
我们再一次使用一个for循环对变量i进行迭代
迭代的范围从0到字符串的长度,每次迭代中,可以用
${char:下标:提取长度}
for((i=0;i
do
echo ${word:i:1};
done
我们从文件中读取行或者从行中读取单词,就是直观的技巧,不过,从单词中读取字符就需要一些技巧了
${word:start_position:no_of_characters} 返回变量word所包含的字符串的一个子串
${#word} 返回变量word的长度