私は、開いている xml ドキュメント内の情報を解析し、スクリプトからの出力を解析して csv 出力を提供するスクリプトに取り組んでいます。
最後のハードルで立ち往生しています。
find /media/path/to/files -type f -iname '*.xlsx' -exec perl parseXML.py {} \; \
| grep -v 'Document\ name\|creator\|lastModified\|Printed\|created\|modified' \
| tr '\n' '.'; echo \n \
>> list.csv
この出力の問題は、すべてのドキュメントに対して 1 つの膨大なリストが作成され、それを python または perl で並べ替えると、私の知識レベルを超えて表示されることです。
sed を使用して、オフセットからこれが発生するのを回避する方法があることを望んでいました
(find /media/E01880-0-CH5-W001/Working/E01880-4-CH5-E001/ED/ -type f -iname '*.xlsx' -exec perl parseXML.py {} \; | grep 'Document\ name\|creator\|lastModified\|Printed\|created\|modified' | tr '\n' '.'; echo \)n >> list.csv
残念ながら、これは変更された情報を含む行を削除するだけです。
最後に今晩、sedといくつかの正規表現を使用して出力を変更しようとしました
cat PleaseWork.csv | sed -i 's/modified[^"\r\n]*\./&\\n/g' >> NewFile.csv
理論上の構文では、変更された文字とピリオドまでの文字を一致する式と新しい行に置き換える必要がありますが、入力ファイルがない sed エラーを受け取りました。今のところ、画面を十分に見つめていると思います。
助けてください。
Google の snortdlp コードを使用しています。
http://snortdlp.googlecode.com/svn-history/r115/trunk/src/python/read_open_xml.pl