无法在脚本中打印 shell 命令的结果



我发现这篇关于如何从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"

相关内容

  • 没有找到相关文章

最新更新