De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Julio Cezar Neves
Data de Publicação: 25 de outubro de 2023
Ainda falando do Bash 4.0, eis que ele surge com uma outra novidade: o comando
intrínseco (builtin) mapfile
, cuja finalidade é jogar um arquivo de texto
inteiro para dentro de um vetor, sem loop ou substituição de comando.
— EPA! Isso deve ser muito rápido!
— E é. Faça os teste e comprove!
Exemplo:
$ cat frutas abacate maçã morango pera tangerina uva $ mapfile vet < frutas # Mandando frutas para vetor vet $ echo ${vet[@]} # Listando todos elementos de vet abacate maçã morango pera tangerina uva
Obteríamos resultado idêntico se fizéssemos:
$ vet=($(cat frutas))
Porém isso seria mais lento porque a substituição de comando é executada em um subshell.
Uma outra forma de fazer isso que logo vem à cabeça é ler o arquivo com a
opção -a
do comando read
. Vamos ver como seria o comportamento disso:
$ read -a vet < frutas
$ echo ${vet[@]}
abacate
Como deu para perceber, foi lido somente o primeiro registro de frutas.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários