0

エラーメッセージをキャプチャしてawkに送信したい(たとえば、pdfファイルが暗号化されている場合、pdftotextは「パスワードが正しくありません」というメッセージを表示します)。これにより、awkはそれを印刷できます。

以下のコマンドは、pdf ファイル内の単語をカウントします。ただし、パスワード付きのファイルの場合、コマンドは 0 カウントを返し、パスワードのない pdf 画像と衝突します (0 カウントも返します)。

pdftotext -q file.pdf - | awk 'BEGIN {w=w+NF; if(w>=30) {print (w-1); exit}} END {print w-1}'

私は立ち往生しています

pdftotext 2>&1 file.pdf - | awk 'BEGIN {w=w+NF; if(w>=30) {print (w-1); exit}} END {print w-1}'

PDF ファイルがパスワードで保護されている場合、「コマンド ライン エラー: パスワードが正しくありません」が awk にパイプされます。そのフレーズを印刷するにはどうすればよいですか? (この場合、単語数はありません。)

A.ダス

4

2 に答える 2

1

これはあなたが求めているもののようです:

pdftotext file.pdf - 2>&1 | awk '
    /Command Line Error:/ { print; exit}
    { w += NF }
    END { print w+0 }
'

あなたの主な問題は、スクリプト全体が BEGIN セクション内にあり、入力が処理される前に実行されることです。

于 2013-11-26T03:18:16.447 に答える