Bashでは、行のフィールドを配列として読みました。強調すると、パフォーマンスは問題なので、サブプロセスを作成することは余裕がありません。
コードを読みやすくするために、フィールドを変数に入れたいと思います。次$width
の${array[0]}
ように各変数を手動で設定する必要があります。これは重複します。
while read line; do
array=($line)
width=${array[0]}
height=${array[1]}
size=${array[2]}
date=${array[3]}
time=${array[4]}
# use $width, $height, etc. in script
done < file
list
PHPのディレクティブのようにこれを行う簡単な方法はありますか?
list($width, $height, $size, $date, $time) = $array;
答え1
例:
while read -r width height size thedate thetime; do
# use variables here
done <file
これは標準入力からデータを読み取り、データをスペース(スペースまたはタブ)に分割します。最後の変数は「残りの」データをすべて取得します(読み込んだ変数よりもフィールドが多い場合)。これは変える変数を読みますline
。
ユーティリティ名の代わりに変数名thedate
とを使用しました。thetime
date
time
区切り線タブのみ、IFS
次に設定されたタブread
:
IFS=$'\t' read -r width ...etc...
また見なさい: