Introdução
Neste projeto, você aprenderá como extrair informações de links de documentos Markdown usando um script Bash. Esta é uma tarefa comum no desenvolvimento de software, onde os desenvolvedores precisam processar e extrair informações específicas de documentos baseados em texto.
👀 Pré-visualização
$ ./getlink.sh labex_lab1.md
course https://labex.io/courses/
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar um script Bash para extrair o texto do link e URLs de um documento Markdown
- Como usar expressões regulares e ferramentas de linha de comando como
grepepastepara processar dados de texto - Como tornar um script executável e executá-lo com argumentos de linha de comando
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Desenvolver um script Bash que pode extrair informações de links de documentos Markdown
- Compreender a lógica e a implementação do script, incluindo o uso de expressões regulares e ferramentas comuns de linha de comando
- Aplicar as habilidades aprendidas neste projeto a outras tarefas de processamento de texto em seu trabalho de desenvolvimento de software
Criar o Script getlink.sh
Nesta etapa, você criará o script getlink.sh que pode extrair todos os links de um documento Markdown.
- Abra um editor de texto e crie um novo arquivo chamado
getlink.sh. - Adicione o seguinte código ao arquivo:
#!/bin/bash
## Extract link
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\[\K[^\]]+(?=\]\([^\)]+\))' > "links.txt"
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\]\(\K[^\)]+(?=\))' > "urls.txt"
## Merge links and URLs
paste -d ' ' links.txt urls.txt
## Clean up temporary files
rm links.txt urls.txt
- Salve o arquivo.
Testar o Script getlink.sh
Nesta etapa, você testará o script getlink.sh executando-o com um arquivo Markdown como argumento.
- No mesmo diretório do script
getlink.sh, existe um arquivo Markdown chamadolabex_lab1.md. Este arquivo contém o seguinte:
Use the course categories and tags on the [course](https://labex.io/courses/) page to filter and search for courses
- Execute o script
getlink.shcom o arquivolabex_lab1.mdcomo argumento:
./getlink.sh labex_lab1.md
- O script deve exibir o seguinte:
course https://labex.io/courses/
Esta saída mostra que o script extraiu com sucesso as informações do link do arquivo Markdown.
Entender o Script getlink.sh
Nesta etapa, você entenderá o código no script getlink.sh.
O script realiza as seguintes tarefas:
- Extrair o texto do link: O primeiro comando
grepextrai o texto do link do arquivo Markdown e o salva em um arquivo temporário chamadolinks.txt. O comandogrep -E "\[.*\]\(.+\)"corresponde ao formato de link Markdown[texto](url), e o comandogrep -vP '\!\['exclui links de imagem. - Extrair URLs dos links: O segundo comando
grepextrai as URLs dos links do arquivo Markdown e as salva em um arquivo temporário chamadourls.txt. O comandogrep -oP '\]\(\K[^\)]+(?=\))'captura a parte da URL do formato de link Markdown. - Mesclar o texto do link e as URLs: O comando
paste -d ' ' links.txt urls.txtmescla o texto do link e as URLs dos arquivos temporários, separando-os com um espaço. - Limpar arquivos temporários: O comando
rm links.txt urls.txtremove os arquivos temporários criados durante a execução do script.
Ao entender a lógica do script, você pode modificá-lo ou estendê-lo para atender às suas necessidades específicas, como lidar com diferentes tipos de links ou realizar processamento adicional nas informações extraídas.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



