bash 스크립트에서 일괄 rst2html 변환


0

데비안 시스템의 여러 폴더와 하위 폴더에 여러 개의 .rst 파일이 있습니다.

rst2html 명령을 사용하여 모든 .rst 파일을 html로 변환하고 원래 구조를 유지하는 새 폴더와 하위 폴더를 만드는 스크립트를 어떻게 만들 수 있습니까?

나는 이것을 시도했지만 실패합니다.

#!/bin/bash

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

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

done

html 폴더를 만들었으므로 변환 된 모든 .rst를 동일한 트리 구조로 넣습니다.

터미널 오류는 다음과 같습니다

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

시도와 함께 질문을 편집했습니다 ..
matteo

답변:


1

스크립트를 다음과 같이 변경해야합니다.

  • `rst2html '을 호출하기 전에 누락 된 디렉토리를 작성하십시오.
  • /소스 인수가 find점으로 시작할 수 있도록 추가 경로를 포함하도록 대상 경로를 변경하십시오 .

제안 된 해결책은 다음과 같습니다.

#!/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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.