Como posso converter todos os arquivos html que entro em arquivos de texto depois de um comando wget?

1

Como posso converter todos os arquivos html que recebo em arquivos de texto sem formatação após um comando wget?

Estou pensando em usar lynx para converter arquivos html em arquivos ".txt", livrando-me de tags.

Eu tenho esse trecho para salvar um site inteiro, mas como posso alterá-lo para que ele deixe apenas os arquivos de texto que são convertidos de arquivos html no site "foobar", na minha pasta local "test"?

wget -P /test/ --recursive http://foobar.html

Não sei como canalizar isso para lynx e como especificar a aplicação de comandos para todos os arquivos em algum diretório específico .

    
por stacko 09.04.2016 / 19:45

2 respostas

1

wget pode não ser a ferramenta adequada. O Lynx pode fazer o download dos arquivos e convertê-los em texto simples ao mesmo tempo, mas faria isso redirecionando sua saída para um arquivo. Como não tem a opção -output , isso torna um pouco estranho usar em um script, já que você teria que atribuir nomes de saída.

Mas, supondo que você tivesse um diretório cheio de .html arquivos, você poderia usar find para percorrer esse diretório e converter os arquivos, por exemplo,

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    lynx -dump "$path" >"${path%%.htm*}.txt"
done

para colocar os arquivos ".txt" na mesma árvore ou

#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
    target=${path/foobar/test}
    lynx -dump "$path" >"${target%%.htm*}.txt"
done

na pasta "test" (mapeando "foobar" para "test"). A substituição "/" é bash-specific, não em POSIX (mas se você escolheu usar POSIX, sed funciona bem o suficiente).

Leitura adicional:

por 09.04.2016 / 20:32
0

Você provavelmente poderia fazer o download deles como arquivos HTML conforme o planejado e usar o utilitário de linha de comando html2text .

link

    
por 14.04.2016 / 15:05

Tags