read
bash 3.2を使用してファイルを読み込もうとしていますが、read
複数のスペースのインスタンスを単一のスペースに変換するようです。
たとえば、次のコードには、「hello」と「there」の間に2つのタブがあり、「today」と「world」の間に3つのスペースがあります。
while read -r LINE; do
echo $LINE
done <<< "hello there
today world"
ただし、実行すると、各単語グループ間に空白が1つだけ出力されます。
hello there
today world
代わりに、次のようにスペースを保存する行を出力したいと思います。
hello there
today world
これを行う方法はありますか?読まなかったら他に何かありますか?
ベストアンサー1
印刷するときは、変数の周りに引用符を入れてください。拡張された後にトークン化されるので、およびを別の引数としてecho
取得します。hello
there
echo "$LINE"
またはより良い
printf '%s\n' "$LINE"
あなたのスペースを保ちます
したがって、スペースを変更するのではなく、read
後でその変数を参照しないということです。