O Mais Prático ou o Mais Rápido? Alternativa ao cut -c
Eu vi em um grupo no Telegram alguém com dúvida em como fazer para exibir de uma lista de texto apenas a primeira letra de cada palavra. A resposta como era de se esperar foi:
cut -c1 lista.txt
Aí eu me perguntei, existe outra forma de fazer isso?
Então, enviei uma alternativa:
for i in $(< lista.txt); do echo "${i::1}"; done
Aí você me pergunta, qual é a diferença e o que é esse "${i::1}"? Isso é uma expansão de parâmetros que funciona como alternativa ao cut -c. Sua sintaxe consiste em ${PARM:POSICAOINICIAL:TAMANHO}. Pra quem não sabe, a expansão de parâmetros age na pilha de dados diretamente no processador, por isso não há a necessidade de uso de comandos.
Beleza, já está explicado o que é, mas e a diferença? OLHA.
A diferença está na velocidade que é surreal. O processador do meu Note é um i7-8565U é já deu essa diferença, agora imagina isso em um PC fraquinho. Certamente, será viável usar expansão de parâmetro, pois mesmo o PC com pouco processamento, temos o "for" que é uma bala e o uso de uma expansão de parâmetro que é outra bala e o resultado final será de grande eficiência, pois mesmo com um processador de baixo desempenho a expansão de parâmetro será extremamente rápida.
Espero que esse conteúdo seja de grande utilidade.