ディレクトリのソースファイルを.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ファイルに再帰的に結合し、各ファイルは新しいページから始まります。おそらく、私はこれを2つのステップで行う必要がある状況で生きなければなりません。まず、文字セットを変換してから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