batch rst2html conversão em um script bash

0

Eu tenho vários arquivos .rst em várias pastas e sub-pastas no meu sistema Debian.

Como posso criar um script que converta todos os arquivos .rst em html (com o comando rst2html) e crie novas pastas e sub-pastas mantendo a estrutura original?

Eu tentei isso, mas ele falha:

#!/bin/bash

for i in $(find $directory -type f -name \*.rst)
do

rst2html "$i" "./html${i%.html}"

done

Eu criei a pasta html, então eu só quero colocar dentro dela todo o .rst convertido com a mesma estrutura de árvore.

Erro de terminal é:

Unable to open destination file for writing:
  OutputError: [Errno 2] No such file or directory: './html./gdalogr/nearblack.rst'
    
por matteo 17.04.2014 / 11:16

1 resposta

1

Você deve fazer as seguintes alterações no seu script:

  • Crie os diretórios ausentes antes de chamar 'rst2html'
  • Altere o caminho de destino para incluir um / extra para permitir que o argumento de origem de find comece com um ponto.

Aqui está uma solução sugerida:

#!/bin/bash

directory=$1

for i in $(find $directory -type f -name \*.rst)
do
    RST_FILE="$i"
    HTML_FILE="./html/${i%.html}"
    HTML_DIR=$(dirname ${HTML_FILE})
    mkdir -p ${HTML_DIR}
    rst2html "$i" "$HTML_FILE"
done
    
por 18.04.2014 / 22:30

Tags