我发现这篇关于如何从DOCX文件中提取文本的文章很有用,我想把它做成一个小的shell脚本。我的尝试如下
#!/bin/sh
if [[ $# -eq 0 ]]; then
echo "pass in a docx file to get the text within"
exit 1
fi
text="$(unzip -p $1 word/document.xml | sed -e 's/</w:p>/n/g; s/<[^>]{1,}>//g; s/[^[:print:]n]{1,}//g')"
echo $text
但是,这并没有按预期打印结果。
有什么建议吗?
多亏了shellcheck.net,我发现我需要在$1
周围加引号。经shellcheck批准的最终脚本是:
#!/bin/sh
if [ $# -eq 0 ]; then
echo "pass in a docx file to get the text within"
exit 1
fi
text=$(unzip -p "$1" word/document.xml | sed -e 's/</w:p>/n/g; s/<[^>]{1,}>//g; s/[^[:print:]n]{1,}//g')
echo "$text"