Extraindo Informações de Links de Texto

LinuxBeginner
Pratique Agora

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 grep e paste para 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.

  1. Abra um editor de texto e crie um novo arquivo chamado getlink.sh.
  2. 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
  1. Salve o arquivo.

Testar o Script getlink.sh

Nesta etapa, você testará o script getlink.sh executando-o com um arquivo Markdown como argumento.

  1. No mesmo diretório do script getlink.sh, existe um arquivo Markdown chamado labex_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
  1. Execute o script getlink.sh com o arquivo labex_lab1.md como argumento:
./getlink.sh labex_lab1.md
  1. 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:

  1. Extrair o texto do link: O primeiro comando grep extrai o texto do link do arquivo Markdown e o salva em um arquivo temporário chamado links.txt. O comando grep -E "\[.*\]\(.+\)" corresponde ao formato de link Markdown [texto](url), e o comando grep -vP '\!\[' exclui links de imagem.
  2. Extrair URLs dos links: O segundo comando grep extrai as URLs dos links do arquivo Markdown e as salva em um arquivo temporário chamado urls.txt. O comando grep -oP '\]\(\K[^\)]+(?=\))' captura a parte da URL do formato de link Markdown.
  3. Mesclar o texto do link e as URLs: O comando paste -d ' ' links.txt urls.txt mescla o texto do link e as URLs dos arquivos temporários, separando-os com um espaço.
  4. Limpar arquivos temporários: O comando rm links.txt urls.txt remove 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.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar