当我在提取(膨胀)XLSX的目录中运行以下命令时,我获得子文件夹文件中找到的所有URL。
找 。 -exec exiftool {} \; | grep http
现在我想将它作为我开发的bash脚本的一部分运行,但它完成时根本不显示任何内容。
这是脚本中的代码:
if [[ $fileName == *.xlsx ]]; then
#file is XML based, create new directory with file name, copy file there and extract
echo "Creating directory\n"
DATE=`date +%Y-%m-%d`
mkdir "Files/$DATE-$fileName-$USER"
cp $filePath "Files/$DATE-$fileName-$USER"
unzip "Files/$DATE-$fileName-$USER/$fileName" -d "Files/$DATE-$fileName-$USER/"
result="find 'Files/$DATE-$fileName-$USER/$fileName' -exec exiftool {} \; | grep http"
printf $result
fi
在弄清楚这里有什么问题时,我们非常感谢您的支持。
你没有调用命令,有分配
result="find 'Files/$DATE-$fileName-$USER/$fileName' -exec exiftool {} \; | grep http"
但该命令被视为一个字符串,从未执行过。单引号中的变量也不会扩展。相反,写
result="$(find "Files/$DATE-$fileName-$USER/$fileName" -exec exiftool {} \; | grep http)"
echo
默认不承认\n
。用echo "Creating directory\n"
替换echo "Creating directory"
并添加另一个空的echo
以获得额外的换行符。
printf $result
可能吞下%
逃逸序列和第一个空间后的部分。引用变量并使用%s
:printf %s "$result"
。
不要将目录及其中的文件传递给exiftool
。使用exiftool
的递归选项并删除find
部分或将-type f
添加到find
命令,这样只列出文件。