wc
用于计数的命令不能直接用于 Office 文件。
例如,我创建了一个 writer.odt
文件,并在其中写入了 7 个字。然后我尝试wc -w file.odt
输出 136,这完全不合逻辑。
如果您在任何文件上尝试上述操作,就不会wc -w
遇到问题。
现在我的问题是如何使用wc
Libre/OpenOffice 命令?
答案1
更新:您可以使用libreoffice
默认安装的将文件转换为纯文本文件,然后使用以下命令计算字符/单词/行数wc
:
计算字符数:
libreoffice --headless --convert-to txt:Text <path_to_source_file> &> /dev/null && < <plaint_text_file_name> wc -c && rm test.txt
*<path_to_odt_file> = 源文件的路径;<plain_text_file_name> = 源文件的名称,扩展名替换为.txt
;
统计单词数:
libreoffice --headless --convert-to txt:Text <path_to_source_file> &> /dev/null && < <plaint_text_file_name> wc -w && rm test.txt
*<path_to_odt_file> = 源文件的路径;<plain_text_file_name> = 源文件的名称,扩展名替换为.txt
;
计算行数:
libreoffice --headless --convert-to txt:Text <path_to_source_file> &> /dev/null && < <plaint_text_file_name> wc -l && rm test.txt
*<path_to_odt_file> = 源文件的路径;<plain_text_file_name> = 源文件的名称,扩展名替换为.txt
;
答案2
我找到了这个命令:
计算单词数
unzip -p doc.odt content.xml | sed 's|<[^>]*>| |g' | wc -w
计算行数
unzip -p doc.odt content.xml | sed 's|<[^>]*>| |g' | wc -l
计算字符数
unzip -p doc.odt content.xml | sed 's|<[^>]*>| |g' | wc -c
答案3
还有独立的odt2txt
(该unoconv
套餐还提供odt2txt
):
sudo apt-get install odt2txt
odt2txt foo.odt | wc -w
令人惊讶的是,Ubuntu 手册页缺少它的手册页。