「while read -r LINE; do」は、複数のスペースを1つのスペースに置き換えます。

「while read -r LINE; do」は、複数のスペースを1つのスペースに置き換えます。

readbash 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取得します。hellothere

echo "$LINE"

またはより良い

printf '%s\n' "$LINE"

あなたのスペースを保ちます

したがって、スペースを変更するのではなく、read後でその変数を参照しないということです。

おすすめ記事