以下の値を持つfile.txtファイルを検討してください
one,two
three,four
five,six
six,seven
red,tree
以下のアクティビティを実行するには、シェルスクリプトコマンドが必要です
たとえば、最初のループの実行では、「1」を変数に格納し、「2」を別の変数に格納して、実行時に変数値を使用する必要があります。
Input1="one"
Input2="two"
2行目の実行と同様に、「3」は変数に格納し、「4」は以下のような別の変数に格納する必要があります
Input1="three"
Input2="four"
while IFS=, read -r input1 input2; do
# do stuff with "$input1" and "$input2"
done <file.txt
IFS
をread
コマンドのコンマに設定すると、各入力行がコンマで分割されます。行の2つのフィールドがinput1
とinput2
に読み込まれます。
1行に2つ以上のフィールドがある場合、「残った」データはinput2
に入れられます。
データをどのように処理するかによって、これはまったく良いアイデアかもしれませんし、そうでないかもしれません。参照 なぜシェルループを使用して、テキストを処理することが悪い習慣と見なされているのですか?
awk
は、ループを必要とせずに、このようなデータを解析する場合に特に便利です。
$ awk -F, '{ printf("Line %d:\n\tField 1 = %s\n\tField 2 = %s\n", NR, $1, $2) }' file.txt
Line 1:
Field 1 = one
Field 2 = two
Line 2:
Field 1 = three
Field 2 = four
Line 3:
Field 1 = five
Field 2 = six
Line 4:
Field 1 = six
Field 2 = seven
Line 5:
Field 1 = red
Field 2 = tree
あなたが何を求めているのかは不明です。なぜ各反復でファイル全体が必要なのですか。
これが必要ですか?
while IFS=, read -r Input1 Input2; do
# do something with the variables
echo "1=$Input1 2=$Input2"
done < file.txt