Оболочка bash
может хранить отдельные строки в одиночных обычных переменных, списки строк в массивах и строки, связанные с другими строками в ассоциативных массивах. Вы не сможете хранить, например. массивы массивов или ассоциативные массивы ассоциативных массивов (или их комбинации ).
Для конкретных данных, которые вы упомянули, вы могли бы сделать что-то вроде ассоциативного массива:
declare -A goals
goals["teamA"]="0:2:3:4"
goals["teamB"]="1:3:3:3"
# etc.
или
declare -A goals
goals=(
["teamA"]="0:2:3:4"
["teamB"]="1:3:3:3"
# etc.
)
, а затем анализировать:
-значения с разделителями, когда они вам понадобятся:
for team in "${!goals[@]}"; do
home_goals=$( cut -d : -f1 <<<"${goals[$team]}" )
away_goals=$( cut -d : -f2 <<<"${goals[$team]}" )
# etc.
# use "$team", "$home_goals", "$away_goals" etc. here
done
... но было бы намного эффективнее сделать это на таком языке, как Perl или Python, который допускает произвольное вложение структур данных.
Например, в Perl:
my %goals = ( "teamA" => [ 0, 2, 3, 4 ],
"teamB" => [ 1, 3, 3, 3 ],
# etc.
);
Вы можете попробовать выполнить переименование:
for i in part*; do mv "$i" "${i%%.lzo*}.lzo"; done