Я бы использовал один ассоциативный массив для каждой записи csv :предполагая, что ваши данные были в файле с именемinput.csv
#!/usr/bin/env bash
counter=1 # provides index for each csv record
while read
do
IFS=',' a=( $REPLY ) # numeric array containing current row
eval "declare -A row$counter" # declare an assoc. array representing
# this row
eval "row$counter+=( ['row']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['shelf']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section1']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section2']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section3']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section4']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section5']=${a[0]} )"
a=( "${a[@]:1}" )
eval "row$counter+=( ['section6']=${a[0]} )"
a=( "${a[@]:1}" )
declare -p row$counter
(( counter = counter + 1 ))
done < <( cat input.csv )
# access arbitrary element
printf "\n---------\n%s\n" ${row3["section4"]}
это дает мне результат, подобный:
declare -A row1='([section6]="6" [section5]="5" [section4]="4" [section3]="4" [section2]="2" [section1]="1" [shelf]="12" [row]="PL3" )'
declare -A row2='([section6]="" [section5]="" [section4]="" [section3]="2" [section2]="1" [section1]="4" [shelf]="13" [row]="PL4" )'
declare -A row3='([section6]="" [section5]="" [section4]="3" [section3]="2" [section2]="1" [section1]="5" [shelf]="14" [row]="PL5" )'
declare -A row4='([section6]="5" [section5]="4" [section4]="3" [section3]="2" [section2]="1" [section1]="6" [shelf]="15" [row]="PL6" )'
declare -A row5='([section6]="5" [section5]="4" [section4]="3" [section3]="2" [section2]="1" [section1]="7" [shelf]="16" [row]="PL7" )'
declare -A row6='([section6]="5" [section5]="4" [section4]="3" [section3]="2" [section2]="1" [section1]="8" [shelf]="15" [row]="PL8" )'
declare -A row7='([section6]="5" [section5]="4" [section4]="3" [section3]="2" [section2]="1" [section1]="7" [shelf]="16" [row]="PL9" )'
---------
3
Просто добавьте флаг «--skip -disabled» в конце, и команда завершит установку:
dnf install @mate-desktop-environment --skip-broken