while ループの反復中に、入力ファイル内のすべての空白を保持しようとしています。これが私が作業しているファイルです(file1):
a@ubuntu:~$ cat file1
01: a b c
02: d e f
ご覧のとおり、各行の文字の間にタブを配置しました。これらのタブを出力に残しておきたい。次のように while ループで IFS をクリアしようとしました。
while IFS= read -r p; do
echo $p
done < <(cat file1)
IFS をクリアした後でも、結果は何らかの理由でタブを取り除きます (echo -e も試しました)。
a@ubuntu:~$ sudo bash a.sh
01: a b c
02: d e f
ただし、while ループの外側で IFS をクリアすると、完全に機能します。
IFS=''
while read -r p; do
echo $p
done < <(cat file1)
出力は次のとおりです。タブは保持されます。
a@ubuntu:~$ sudo bash a.sh
01: a b c
02: d e f
while ループと同じ行で IFS をクリアすると、タブが保持されないのはなぜですか?