O que são matrizes de índice
Matrizes indexadas são uma coleção de elementos em festas que podem ser acessados usando um índice ou uma chave. Essas matrizes podem ser usadas para armazenar e recuperar dados em um pedido específico, facilitando o gerenciamento de grandes quantidades de dados. A sintaxe para declarar uma matriz indexada em Bash é a seguinte:
= (Element1 element2 Element3…)
Aqui, Array_name é o nome da matriz e elemento1, elemento2, elemento3 e assim por diante são os valores a serem armazenados na matriz. Os valores são separados pelo espaço em branco e observe que você também pode usar o comando declarar para criar uma matriz.
Como usar matrizes indexadas em Bash
Para criar uma matriz de índice em Bash, você simplesmente precisa declarar uma variável e atribuir valores de TI entre parênteses e separados por espaços. Aqui estão poucos exemplos que demonstram como usar matrizes indexadas no Bash:
Reordenando uma lista em Bash
Se você tiver uma lista de itens em uma determinada ordem e deseja reordená -los de uma maneira diferente. Você pode usar uma matriz de índice para criar um novo pedido para os itens, como segue:
#!/BIN/BASH
itens = ("manga" "abacaxi" "morango" "cereja" "uvas")
ordem = (4 2 0 3 1)
para i em "$ order [@]"
fazer
eco $ itens [$ i]
feito
Neste exemplo, criamos uma matriz chamada itens com cinco elementos. Também criamos uma matriz de índice chamada Order, que especifica um novo pedido para os itens. Em seguida, passamos pela matriz de pedidos e usamos cada valor como um índice para recuperar o item correspondente da matriz de itens e imprimi -lo.
Filtrando uma lista em Bash
Se você tiver uma lista de itens e deseja filtrar certos itens com base em uma condição. Você pode usar uma matriz de índice para acompanhar os índices dos itens que atendem à condição, como segue:
#!/BIN/BASH
itens = ("manga" "abacaxi" "morango" "cereja" "uvas")
índices = ()
para i em "$ !Unid[@]"
fazer
se [[$ itens [$ i] == * "r" *]]
então
índices+= ($ i)
fi
feito
para i em "$ índices [@]"
fazer
eco $ itens [$ i]
feito
Neste exemplo, criamos uma matriz chamada itens com cinco elementos. Também criamos uma matriz de índice vazia chamada índices. Em seguida, passamos pela matriz de itens e verificamos se cada item contém a letra "r". Se isso acontecer, adicionamos seu índice à matriz de índices. Por fim, percorremos a matriz dos índices e usamos cada valor como um índice para recuperar o item correspondente da matriz de itens e imprimi -lo.
Contando ocorrências em Bash
Se você tiver uma lista de itens e deseja contar o número de ocorrências de cada item, pode usar uma matriz de índice para acompanhar as contagens e aqui está um exemplo para demonstração:
#!/BIN/BASH
itens = ("manga" "abacaxi" "morango" "cereja" "uvas")
contagens = ()
para i em "$ !Unid[@]"
fazer
se [[ ! "$ couts [@]" = ~ "$ itens [$ i]"]]
então
contagens+= ("$ itens [$ i] 1")
outro
Índice = $ (echo "$ couts [@]" | tr "'\ n' | grep -n"^$ itens [$ i] "| cu)
count = $ (echo "$ contagem [$ index -1]" | corte -d "-f2)
contagens [$ index-1] = "$ itens [$ i] $ ((contagem+1))"
fi
feito
Para contar em "$ contagem [@]"
fazer
eco $ contagem
feito
Primeiro inicializa uma matriz chamada "itens" com uma lista de strings. Então declara uma matriz vazia chamada "contagens". Um loop for criado para iterar para cada item na matriz "itens" e para cada item que verifica se já existe na matriz "contagens".
Se não existir, adicionará o item e a contagem de 1 à matriz "contagens". Se existir, incrementa a contagem desse item na matriz "contagens". Finalmente, para imprimir cada item e sua contagem correspondente, outro para o loop é usado. A saída deste código imprimirá a contagem de cada item na matriz de "itens", com as duplicatas sendo contadas separadamente.
Atualizando uma lista em Bash
Se você tiver uma lista de itens e deseja adicionar ou excluir itens, poderá usar uma matriz de índice para ele e aqui está um exemplo para demonstração:
#!/BIN/BASH
itens = ("manga" "abacaxi" "morango" "cereja" "uvas")
# Adicionando um novo elemento à matriz indexada no índice 2
itens [6] = "laranja"
# Excluindo o elemento no índice 2 da matriz indexada
itens não definidos [2]
# Imprimindo a matriz atualizada
eco "$ itens [@]"
No script, uma matriz indexada “itens” é definida com cinco elementos iniciais. Para adicionar um novo elemento, o valor é simplesmente atribuído ao índice desejado usando a matriz de sintaxe [index] = valor. Neste script, "laranja" é adicionado ao índice 6 da matriz. Para excluir um elemento, usamos o comando unset seguido pelo índice do elemento que queremos remover. Nesse caso, o elemento no índice 2 ("Strawberry") é excluído. A matriz atualizada é então impressa usando a sintaxe “$ Array [@]”, que expande toda a matriz.
Conclusão
As matrizes indexadas são uma estrutura útil de festas que permitem armazenar e manipular vários valores usando uma única variável. Ao entender a sintaxe e o uso de matrizes indexadas, você pode escrever scripts bash mais eficientes e eficazes.