
.docまたは.docxファイルでいっぱいのフォルダがあります。各ファイルを開かずに、各ファイルにいくつかの単語(または機能しない場合は文字または行)があるかどうかを知りたいです。 (ユースケース:私は完了するために毎週多数の読書の回答に評価する必要がある調教です。)
コマンドラインでこれを行う方法はありますか?最終的にこれらすべてを.csvファイルに保存したいと思います。これを行うには、いくつかのユーティリティをダウンロードすることを嬉しく思います。
それが重要であれば、私はArch Linuxを実行しています。
答え1
申し訳ありません。最初にこのコードを追加するのを忘れてしまったようです。
cp -Rp doument_directory document_directory.orig
cd document_directory
for file in *
do
docx2txt "${file}" > "${file}.txt" && mv "${file}.txt" "${file}.doc"
done
システムにdocx2txtユーティリティがない場合は、以下からダウンロードできます。http://sourceforge.net/projects/docx2txt/
注意:MS Word文書の改行形式は、UNIXの改行形式とは異なる場合があります。したがって、行数が正確ではない可能性がありますが、次のようにすれば必要な操作を実行できます。
wc file.doc
次の出力が表示されます。
28 377 1492
最初の数字は行数、2番目の数字は単語数、3番目の数字は文字数です。
一度に 1 種類の計算のみを実行する場合は、次のことができます。
行数について
wc -l file.doc
単語数のため
wc -w file.doc
文字数について
wc -c file.doc
数字とファイル名が順番に表示されます。
答え2
pandocを使用するように上記の提案は私にぴったりです。
pandoc foo.docx | wc
精度は、MS Wordで話す内容の+/- 2以内です。