私はbashを使用してファイルを1文字ずつ読み取ろうとしています。
多くの試行錯誤の結果、これが機能することがわかりました。
exec 4<file.txt
declare -i n
while read -r ch <&4;
n=0
while [ ! $n -eq ${#ch} ]
do echo -n "${ch:$n:1}"
(( n++ ))
done
echo ""
done
つまり、1行ずつ読み取って、各行をcharごとにループできます。
これを行う前に、私は試し
ましたが、ファイル内のすべての空白exec 4<file.txt && while read -r -n1 ch <&4; do; echo -n "$ch"; done
がスキップされました。
理由を教えてください。2番目の戦略(つまり、bashの読み取りで文字ごとに読み取る)を機能させる方法はありますか?
IFS
空白を単語分割後も存続させるには、何も設定しません。