ファイルを解凍するために使用できるコマンドをオンラインで見つけましたが、ファイルを解凍するdocx
ようにコマンドを調整することはできません。xlsx
コマンドは
unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
word/document.xml
2番目のパラメータと使用方法を理解できません。
xlsxファイルを変換しようとしたときに、次のことを試しました。
unzip -p testexcel.xlsx excel/spreadsheet.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
しかし、2番目のパラメータに何を入れるべきかわかりませんexcel/spreadsheet.xml
。
答え1
このパラメータは、返すword/document.xml
zipアーカイブのファイルパスです。unzip
これは、docxなどのファイル形式の標準構造の一部です。
xl/worksheets/sheet1.xml
Excel xlsxファイルの場合、他のシートがある場合はsheet2.xmlなどが必要になることがあります。これは、通常のスプレッドシート情報とともにxl / workbook.xmlに保存されているワークシートに割り当てる名前とは関係ありません。
zipファイルの構造がわからない場合は、この-l
オプションを使用してzipファイルに含まれるファイルを一覧表示できます。
unzip -l some.docx
このオプションを省略すると、現在のディレクトリにのみファイルが抽出されます。-p
使用中のコマンドは、sedが処理できるように出力をstdoutにパイプします。
答え2
次のコマンドを実行しました。
unzip -p some.docx word/document.xml | sed -e 's/<[^>]\{1,\}>//g; s/[^[:print:]]\{1,\}//g'
まず、それが何をしているのかを明確にしてください。
word/document.xml
.docx ファイルから呼び出されたファイルを抽出します。sed
すべての書式設定情報を削除して、何らかの方法で出力を「美しくする」コマンドにパイプします。
したがって、これを行う方法を理解するために.xlsx
試してみてくださいunzip foo.xlsx
。これで、興味のあるファイルが何であるかを確認できますxl/worksheets/sheet1.xml
。
.xlsx
しかし、コンテンツを抽出したい場合は、強くお勧めします。いいえこの方法を使用してください。
.xlsx
変換できるツールはいくつかあります。CSV、デフォルトでは、カンマで区切られたテーブルの内容が含まれています。
この問題.xlsx
フォームをCSVに変換する方法にはいくつかの答えがあります。