リストファイルを読んで区切り文字で区切って代入してループ(IFS、setコマンドとか)

リストファイルは以下の通りとする。
cat listfile.lst
/home/user/file,10.0.1.3

以下のようにするとリストファイルを , (カンマ)区切りで読み込んで、1つ目(/home/user/file)をFILEに代入、2つ目(10.0.1.3)をIPに代入してくれる。
 
while IFS=, read FILE IP 
do
 処理
done < listfile.lst
IFS=$’ \t\n’       ←IFSをデフォルトに戻す(スペース、タブ、改行)
 
 
 
ちなみにsetコマンドを使用する方法もある。setコマンドを以下のように使うと、$LINEを環境変数IFSのデフォルト値を区切り文字として、位置パラメータ($1、$2、$3〜)に代入される。
 
while read LINE
do
    set $LINE
    処理
done < listfile.lst
 
 
個人的には先に紹介した方法のほうが変数名を指定できるため、処理を追いやすいのでおすすめです。

スポンサーリンク
勉強wikiの下部広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
勉強wikiの下部広告

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA