epub에서 목차 추출

epub에서 목차 추출

스크립팅을 배우려고 하다가 이 기사를 발견했습니다.epub 파일에서 목차 추출, 필요한 부분적인 솔루션을 제공했지만 테스트했을 때 오류가 발생했습니다 error: Extra content at the end of the document.

약간의 배경 지식: 2개의 epub 파일이 있습니다 1.epub. 2.epub각 파일을 개별적으로 테스트했는데 제대로 작동했지만(각 epub에서 디렉터리를 얻었습니다), 두 파일을 모두 테스트하려고 하면 do위의 오류가 발생했습니다.

대본을 배우고 있는데 어딘가에서 실수를 하고 있는지 잘 모르겠습니다. 누구든지 내 실수가 무엇인지 지적할 수 있나요?

ps: 내 스크립트

#! /usr/bin/bash

EPUB_LIST="1.epub 2.epub" 

for f in "$EPUB_LIST"
do
    echo "$f:"
    unzip -p "$f" OEBPS/toc.ncx |
        xml2 |
        sed -n -e 's:^/ncx/navMap/navPoint/navLabel/text=:  :p'
    echo
done

답변1

스크립트가 작성된 방식, for루프만하나반복할 항목은 "1.epub 2.epub"(존재하지 않을 수 있음)이라는 파일 이름입니다. 이것은 두 개의 파일 이름 목록이 아니라 문자열입니다.

EPUB_LIST는 배열이어야 합니다. 예를 들어

#!/bin/bash

EPUB_LIST=(1.epub 2.epub)
for f in "${EPUB_LIST[@]}"; do
  echo $f:
  unzip -p "$f" OEBPS/toc.ncx |
    xml2 |
    sed -n -e 's:^/ncx/navMap/navPoint/navLabel/text=: :p'
  echo
done

관련 정보