におけるに関する情報に基づいて、異なる変数に最初の列を割り当てる:場合、私は各平日のために変数を有するファイルを介して回転させ、入力ファイルの後、次の列
AEGUEUS SA
APOLLO
ARES
ARTEMIS MO TU WE TH FR
ATHENA MO TU WE TH FR
HADES MO TU WE TH FR
AGAFYA MO TU WE TH FR
HERMES MO TU WE TH FR
HESTIA MO TU WE TH FR
POSEIDON MO TU WE TH FR
ATLAS MO TU WE TH FR
AURA MO TU WE TH FR
EOS MO TU WE TH FR
UBON MO TU WE TH FR
PERSES MO TU WE TH FR
PALLAS MO TU WE TH FR
STYX
UDOM SA
LETO MO TU WE TH FR
SELENE MO TU WE TH FR
ASTERIA MO WE FR SU
OCEANUS MO TU WE TH FR
CRONUS TU SU
ACHILLES TU SU
、最初の列は、対応する変数に追加されるべきです次の列は平日のいずれかと一致します。
たとえば、AEGUSをSAに追加する必要があります。 APOLLOとARESは平日がないので、何にも追加されません。 ARTEMISはATHENA、HADESなどと同じようにMO TU WE TH FRに追加する必要があります.....
私は、各行の配列に「読み込み中の線」ループのようなものを考えましたが、各列の大文字小文字を区別し、それに基づいて変数を入力します。しかし、私はこれを適切に行う方法を知りません。私はすでにwhileループで立ち往生していましたが、これは私が思いついたものですが、かなり間違っていると思います。
while IFS=" " read -r line
do
array=($line)
for i in "${array[@]}"
do
case $i in
MO)
MO=()
MO+=("${array[1]}")
;;
TU)
TU=()
TU+=("${array[1]}")
;;
WE)
WE=()
WE+=("${array[1]}")
;;
TH)
TH=()
TH+=("${array[1]}")
;;
FR)
FR=()
FR+=("${array[1]}")
;;
SA)
SA=()
SA+=("${array[1]}")
;;
SO)
SO=()
SO+=("${array[1]}")
;;
esac
done < days.tmp