Banco de dados em txt para shell script

1. Banco de dados em txt para shell script

Ede
ede_linux

(usa Ubuntu)

Enviado em 14/10/2018 - 12:16h

Olá a todos,

Preciso de criar uma aplicação em shell script para realizar vários calculos (actualmente são feitos em excel e pretendo acabar com o excel). Essa aplicação tem que ir consultar e escrever os dados em ficheiros txt. A razão de utilziar txt é porque onde vou rodar a mesma não tem internet e preciso de rodar em vários locais. Assim coloco a mesma na pen drive e é sempre a rodar :)

Segundo o tenho lido (que ainda não é muito) vou precisar de utilizar o sed, para manipular todos os conteudos dos dados que estão nos txt. A questão é "esta é a melhor opção!?" "Será uma aplicação válida!?"

Valeu


  


2. Re: Banco de dados em txt para shell script

Slackjeff
slackjeff

(usa Slackware)

Enviado em 14/10/2018 - 12:52h

Sim, se quiser mais poder de fogo utilize awk que é uma linguagem de manipulação de arquivos.



I'M ROOT!

Slackware user since ~2008
Meu canal no youtube:
https://www.youtube.com/SlackJeff

Meu Site:
https://www.slackjeff.com.br/

Meus Programas estão aqui:
https://notabug.org/jeffersonrocha








3. Re: Banco de dados em txt para shell script

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 14/10/2018 - 13:07h

Concordo com a ideia de usar awk, que é uma excelente ferramenta e tem ampla documentação. Na minha opinião, é a ferramenta mais completa (embora nem sempre a melhor) para trabalhar com arquivos de texto simples.

Mas não entendi a relação entre falta de acesso à internet e necessidade de usar texto. Seria por causa da instalação de programas adicionais? Pergunto isso porque uma outra opção que também pode te interessar é usar o sqlite. Assim poderia trabalhar com SQL para manipular seu banco de dados. O ponto negativo dessa abordagem é que ele não armazena os dados em formato texto.

---

Atenciosamente,
Hugo Cerqueira

Devuan - https://devuan.org/


4. Re: Banco de dados em txt para shell script

Ede
ede_linux

(usa Ubuntu)

Enviado em 14/10/2018 - 13:13h

Também já estive a ler sobre o awk e tenho boas impressões. Acontece que pretendo manter a aplicação o mais simples possível. Assim não tenho que instalar nada na máquina onde pretendo rodar o programa. TXT todos os computadores tem e shell script também!

Estou a pensar como devo formatar os dados no ficheiro txt. Mas algo que me deixa preocupado é como vou imprimir os dados na tela do terminal. O awk permite imprimir os dados em tabela? Estava imaginando criar algo como existe no aeroportos. Aquilo é texto puro, do mais básico que existe (em termos de aparencia)!


5. Re: Banco de dados em txt para shell script

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 14/10/2018 - 13:47h

ede_linux escreveu:

Também já estive a ler sobre o awk e tenho boas impressões. Acontece que pretendo manter a aplicação o mais simples possível. Assim não tenho que instalar nada na máquina onde pretendo rodar o programa. TXT todos os computadores tem e shell script também!

Estou a pensar como devo formatar os dados no ficheiro txt. Mas algo que me deixa preocupado é como vou imprimir os dados na tela do terminal. O awk permite imprimir os dados em tabela? Estava imaginando criar algo como existe no aeroportos. Aquilo é texto puro, do mais básico que existe (em termos de aparencia)!


Bom, então se entendi, seus dois requisitos são:

1. Não pode ser necessário instalar nada;
2. A saída deve ser apresentada em formato tabular.

Se é isso mesmo, então acredito que o AWK vai te atender bem. A linguagem AWK é parte do padrão POSIX. Todo sistema que adere a este padrão (caso do GNU/Linux) terá a linguagem AWK disponível (neste caso, por meio do interpretador GAWK).

Você pode manipular os textos de várias formas e pode trabalhá-los para que a saída seja em formato de tabela. Aliás, por padrão a entrada e a saída do AWK são tabulares (podendo variar o número de colunas para cada linha), porém sem decorações e bordas. Se quiser isso, terá que fazer alguns ajustes no seu script.

Para saber mais, leia a documentação do gawk:
https://www.gnu.org/software/gawk/manual/html_node/index.html

---

Atenciosamente,
Hugo Cerqueira

Devuan - https://devuan.org/


6. Re: Banco de dados em txt para shell script

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 14/10/2018 - 17:26h

ede_linux escreveu:

Olá a todos,

Preciso de criar uma aplicação em shell script para realizar vários calculos (actualmente são feitos em excel e pretendo acabar com o excel).
Essa aplicação tem que ir consultar e escrever os dados em ficheiros txt.
A razão de utilziar txt é porque onde vou rodar a mesma não tem internet e preciso de rodar em vários locais. Assim coloco a mesma na pen drive e é sempre a rodar :)

Segundo o tenho lido (que ainda não é muito) vou precisar de utilizar o sed, para manipular todos os conteúdos dos dados que estão nos txt.
A questão é "esta é a melhor opção!?" "Será uma aplicação válida!?"
Valeu

Boa tarde Ede.
Como já foi dito, o AWK é uma ótima ferramenta, pode usa-lo para "busca" e até para alteração do "banco de dados txt", sendo que no caso de alterações, prefiro o "SED".
Como deseja fazer cálculos, o awk é perfeito... Faz até arredondamento....
Use o Separador de campos (FS) de sua preferencia.... O AWK aceita....

Att.:
Marcelo Oliver




7. Re: Banco de dados em txt para shell script

Ede
ede_linux

(usa Ubuntu)

Enviado em 14/10/2018 - 20:21h

Obrigado pelas dicas pessoal.

Estou vendo que estou a entrar em um mundo maravilhoso :) Segundo o que tenho estado a ler, pelos vossos links, tanto o awk como o sed são fantasticos!

O melhor mesmo é começar já a ler em inglês ou em PT já consigo aprender bastante coisa?
Qual é a melhor maneira de aprender? Ir fazer todo o exemplo que encontro? Ou ir pesquisando/aprendendo à medida que vou precisando? Ambos os métodos tem desvantagens e vantagens, a meu ver, mas qual a sua opinões?

Valeu


8. Re: Banco de dados em txt para shell script

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 15/10/2018 - 21:52h

ede_linux escreveu:

[...] Estou vendo que estou a entrar em um mundo maravilhoso :) Segundo o que tenho estado a ler, pelos vossos links, tanto o awk como o sed são fantasticos!


Concordo com você, são ferramentas fantásticas, e acho que poderiam ser mais conhecidas no mundo da TI. São linguagens altamente versáteis e não raro demonstram grande eficiência.

O melhor mesmo é começar já a ler em inglês ou em PT já consigo aprender bastante coisa?


Creio que haja sim materiais de qualidade em português sobre esse assunto, porém você encontrará mais em livros. De toda forma, aconselho que não dispense as documentações oficiais, pois são de grande ajuda para entender a fundo como seus interpretadores funcionam. A propósito, a documentação do interpretador gawk não deixa de ser um livro, e muito bom, na minha opinião.

Qual é a melhor maneira de aprender? Ir fazer todo o exemplo que encontro? Ou ir pesquisando/aprendendo à medida que vou precisando? Ambos os métodos tem desvantagens e vantagens, a meu ver, mas qual a sua opinões? [...]


Acho que isso é muito subjetivo, mas na dúvida, use os dois métodos. Procure avançar de maneira estruturada, lendo capítulo por capítulo do livro que escolher, mas ao mesmo tempo, quando uma necessidade surgir, pesquise sobre ela.

Penso que a necessidade facilita absurdamente o seu aprendizado. Mas ao mesmo tempo, ela não deve ser sua única inspiração para o estudo. Estudar algo que te interessa apenas porque te interessa pode despertar muitas ideias no futuro. Então acho que não devemos ser utilitaristas demais na hora de estudar, porque isso restringe muito aquilo que podemos descobrir. Acho que grandes ideias com frequência se originam do descompromisso com a resolução de um problema.

---

Atenciosamente,
Hugo Cerqueira

Devuan - https://devuan.org/


9. Re: Banco de dados em txt para shell script

Paulo Bonfanti
pbonfanti

(usa Debian)

Enviado em 16/10/2018 - 09:27h

ede_linux escreveu:

Também já estive a ler sobre o awk e tenho boas impressões. Acontece que pretendo manter a aplicação o mais simples possível. Assim não tenho que instalar nada na máquina onde pretendo rodar o programa. TXT todos os computadores tem e shell script também!

Estou a pensar como devo formatar os dados no ficheiro txt. Mas algo que me deixa preocupado é como vou imprimir os dados na tela do terminal. O awk permite imprimir os dados em tabela? Estava imaginando criar algo como existe no aeroportos. Aquilo é texto puro, do mais básico que existe (em termos de aparencia)!

O awk costuma vir instalado em toda distro então provavelmente você já o tem. ele é criado basicamente pra lidar com tratamento de texto puro, e pode imprimir os dados da forma como você quiser. Por exemplo dar saida em csv para alimentar banco de dados em sqlite, que não precisa de servidor.
Com bash+awk+sqlite possivelmente você usa o minimo de recursos e não precisa de internet pra nada.

Talvez você possa armazenar tudo em texto puro, mas não sei se seria realmente vantajoso, verifique os usos apropriados no site.
https://www.sqlite.org/whentouse.html
Alguma desvantagem do texto puro é mais dificuldade pra pesquisar, redundancia de dados, etc, o awk trata tudo como texto puro sem enfeites, o sqlite te dá mais algumas opções de saída que podem dar uma estetica diferente. Voc pode processar os dados com o awk, que alimenta tabelas no sqlite.
chamando o sqlite você dá saída na tela da forma mais conveniente, ou exportar como texto puro.

https://www.vivaolinux.com.br/dica/Awk-Uma-poderosa-ferramenta-de-analise
https://rosettacode.org/wiki/Table_creation/Postal_addresses
http://sqlite.awardspace.info/syntax/sqlitepg10.htm




10. Re: Banco de dados em txt para shell script

Alan Victor
alanvictorjp

(usa Debian)

Enviado em 26/10/2018 - 19:23h

Se queres simplicidade, aprende expressão regular e usa sed na manipulação.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts