
かつて私は別のサーバー上のディレクトリにあるファイルの変更を報告する必要があるいくつかの作業を実行し、単純なUnixコマンドを使用してレポートを作成しました。私は以下を使用しました:
ls -R -lT /Volumes/www/subdir/ | awk '{if ($7=="" ) print $0; else print $11";"$7"/"$8"/"$10;}' > /Users/[username]/Desktop/output.txt
これで、メタデータが欠落しているすべてのPDFファイルのレポートを作成する必要があります。ファイルのメタデータを確認し、メタデータが欠落しているファイルのみを出力する方法(現在のアプローチと似ています)があるかどうか疑問に思います。データをExcelにインポートできるように、lsの結果をファイルにパイプしたいと思います。他のレポートでは、awkを使用してExcelにインポートするls出力形式を指定しました。
これはMacで行われ、オフィスのハードウェアにソフトウェアをインストールする管理者権限がないため、インストールするよりも組み込みのコマンドを使用することを好みます。
修正する: レポートはPDFだけでなく、今後他のファイル形式も報告するように変更される予定です。したがって、レポートは1つ以上のファイル形式を検索できます。
今確認するメタデータは次のとおりです。
- タイトル
- 作家
- トピック
- キーワード
以下を使用してファイルメタデータを正常に一覧表示しました。
mdls [path to file]
これにより、すべてのメタデータのリストが生成されます。メタで埋められたPDFとメタが埋められていないPDFでテストしました。メタデータが欠落しており、nullを返すのではなく、メタキーがまったくリストされていないことがわかりました。
私が現在試しているものは次のとおりです。
mdfind -onlyin /Volumes/web/ "kMDItemAuthors == ''"
このデータを使用して出力をフィルタリングするにはどうすればよいですか?ls
修正する: 以下を使用して、すべてのPDFがリストされたレポートを取得しました。
ls -R -lT [server directory path] | grep ".[file extension]" | awk '{print $11";"$7"/"$8"/"$10;}' > [output file path]
これの1つの副作用は、lsの再帰属性を失うことです。まだ作業中です。
また、必要なメタデータが欠落しているコンテンツのみをフィルタリングする方法も見つける必要があります。また、すべてのメタデータを含むPDFレポートも作成する必要があると言われました。現在のコマンドを使用して、出力を最初にmdfindにパイプしてからawkにパイプしてみましたが、何かが抜けているようです。
答え1
使用エクスポートツール。
-T -FilePath
拡張子pdf
(-r
)があり、/search/path
指定されたメタデータが空の()すべてのファイルのフルパスを繰り返し印刷するには、次のようにします。
exiftool -T -FilePath \
-if '$FileTypeExtension eq "pdf"' \
-if '(not $Title) or (not $Author) or (not $Subject) or (not $Keywords)' \
-r /search/path
将来の要件に合わせてコマンドをカスタマイズします。
答え2
find(1)
より一般的なものが必要な場合は、次のようにファイルを確認し、各ターゲットで順番に実行するプログラム/スクリプトを作成する必要があります。
find . -name "*.pdf" -exec check \;
常に成功(0)を返しcheck file
、必要に応じて問題のファイル名を印刷します。または、ファイルが破損している場合は、上記の内容を調整して成功を返し、次の手順を実行します。
find . -name "*.pdf" -exec check \; -print