我有一个脚本可以一次读取一个文件的一个字符 这是我使用的脚本
INPUT=/path/
while IFS= read -r -n1 char; do
echo $char
done < "$INPUT"
它工作正常只是我不知道如何将每个字符存储到一个变量中 我正在寻找类似的东西
N$X=$char
其中 X=计数或字符,$char=字符
如有任何帮助,我们将不胜感激。谢谢!
最佳答案
一般情况下,在 bash 中有 N1
、N2
等变量...并希望像 N$i
和 i
那样访问它们是另一个变量非常糟糕。解决这个问题的方法在于数组。以下是我如何使用数组来解决您的问题:
n=()
i=0
while read -r -n1 n[i]; do
echo "Character $i is ${n[i]}"
((++i))
done < "$INPUT"
此时,您的字符在数组 n
中(好吧,不是全部)。您可以使用
k+1
${n[k]}
(记住数组索引从 0 开始)。
另一种可能性是将所有内容都放入一个字符串中,就这么简单:
string=$( < "$INPUT" )
并且您可以使用
访问字符k+1
${n:k:1}
(取从索引k
开始的长度为1的子串)。循环所有字符可以这样完成:
for ((k=0;k<${#string};++k)); do
echo "Character $k is '${string:k:1}'"
done
关于linux - bash:一次从字符串中读取一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393675/