enscript, find, inov 및 ps2pdf 결합

enscript, find, inov 및 ps2pdf 결합

디렉터리의 소스 파일을 .pdf로 변환하는 작은 bash 스크립트를 작성하려고 합니다. 다음 단계는 다음과 같습니다.

  • 찾기를 사용하여 파일 찾기
  • find -exec를 통해 문자 인코딩을 utf-8에서 iso-8859-1로 변환하고 파일에서 iconv를 수행합니다.
  • 이 출력을 enscript를 통해 전달하고 궁극적으로 ps2pdf로 전달합니다.

iconv를 추가한 유일한 이유는 enscript가 utf-8을 지원하지 않기 때문입니다. 지금까지 나는 다음과 같은 혼란을 만들었습니다.

#!/bin/bash
enscript --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1 -name '*.java' -type f -exec iconv -f utf-8 -t iso-8859-1 {} +` | ps2pdf - "$2"'.pdf'

이를 실행하면 다음과 같은 출력이 제공됩니다. enscript:잘못된 옵션 -- ',' 자세한 내용을 보려면 "enscript --help"를 시도하십시오.

편집: -exec iconv를 추가할 때까지 해당 오류가 발생하지 않았습니다.
2. 편집: 지금 제가 본 초기 진술은 매우 모호합니다. 수정하려고 시도한 원본 스크립트는 다음과 같습니다.

#!/bin/bash
`which enscript` --portrait --columns=1 --header ' $n|'"$2"'|%F  Page $% of $=' --highlight='java' --line-numbers --output='-' --color --font='Courier8' `find $1'/src/' -name '*.java'` | ps2pdf - "$2"'.pdf'

./script.sh 대상 디렉터리 출력 파일 이름

원본 스크립트는 폴더의 모든 소스 파일을 pdf 파일로 재귀적으로 결합하며, 각 파일은 새 페이지에서 시작됩니다. 아마도 나는 이것을 두 단계로 수행해야 하는 상황에서 살아야 할 것입니다. 먼저 문자 집합을 변환한 다음 PDF로 변환하세요.

답변1

매개변수 처리를 단순화하기 위해 java2ps 스크립트 만들기

#!/bin/bash

export ENSCRIPT="
--portrait
--columns=1
--font=Courier8
--highlight=java
--color
--line-numbers
--output=-
"

iconv -f utf-8 -t iso-8859-1 "$1" \
| enscript --header=' $n|'"$1"'|%F  Page $% of $='

이제 실행은 간단합니다

find -name '*.java' -type f -exec ~/java2ps {} \; | ps2pdf - > all.pdf

관련 정보