シェルの半角スペース

シェルでは半角スペースは区切り文字として意味のある文字として扱われます。

半角スペースはIFS(Internal Field Separator)に区切り文字として設定されています。

その為以下のようなファイルがあると思わぬ動作をしてしまいます。

aaa,bbb,Program Files,100,200

このファイルをシェルのfor文でループすると、半角スペースを区切り文字(改行)と見なし、2回ループされます。

for $i in `cat a.csv`
do
  echo "$i"
done

これを防ぐには、環境変数IFSをシェル内でLFに設定します。

IFS=$'\n' # ←この1行を追加
for $i in `cat a.csv`
do
  echo "$i"
done
スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA