Как в Bash, учитывая ассоциативный массив, найти длину самого длинного ключа?
Скажем, я объявляю myArray
, как показано ниже:
$ declare -A myArray=([zero]=nothing [one]='just one' [multiple]='many many')
$ echo ${myArray[zero]}
nothing
$ echo ${myArray[one]}
just one
$ echo ${myArray[multiple]}
many many
$
Я могу получить его, используя приведенный ниже однострочник
$ vSpacePad=`for keys in "${!myArray[@]}"; do echo $keys; done | awk '{print length, $0}' | sort -nr | head -1 | awk '{print $1}'`;
$ echo $vSpacePad
8
$
Я ищу что-то более простое, как показано ниже, но, к сожалению, это просто дает количество элементов в массиве.
$ echo "${#myArray[@]}"
3
$ echo "${#myArray[*]}"
3