从命令行输出 .doc 或 .docx 文档中的单词数、字符数或行数

从命令行输出 .doc 或 .docx 文档中的单词数、字符数或行数

我有一个充满 .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

第一个数字是行数,第二个数字是字数,第三个数字是字符数。

如果您只想一次进行一种类型的计数,您可以执行以下操作:

对于行数

wc -l file.doc

对于字数

wc -w file.doc

对于字符数

wc -c file.doc

您将得到一个数字,后跟文件名。

答案2

上面提到的使用 pandoc 的建议对我来说效果很好:

pandoc foo.docx | wc

与 MS Word 所说的准确度在 +/- 2 以内。

相关内容