我想创建一个小的shell脚本,该脚本将告诉我视频的持续时间,该视频的文件名作为参数传递给它。就像这样:
$ script_name "file name with spaces.webm" # or any other media file extension
脚本文件类似于
#/bin/bash
SECRET_SAUCE_USING_$1 | mediainfo | grep Duration | sort -u
# maybe SECRET_SAUCE_USING_$1 | xargs -0 mediainfo . . .
在命令行上,这是有效的方法,也是我希望脚本执行的操作:
$ mediainfo file\ name\ with\ spaces.webm | grep Duration | sort -u
我已经尝试使用类似的东西
echo "$1" | sed 's/ /\\ /g' # piped to mediainfo . . .
将文件名中的空格更改为'\'字符对(不带引号)。回声... | sed ...部分有效,但mediainfo barfs
和
echo "$1" | tr ' ' '\000' | xargs -0 mediainfo . . .
将空格更改为null并获取xargs调用文件名中包含空格(而不是空格)的mediainfo。
到目前为止,我还没有找到解决方案。(我实际上使用的是zsh,而不是bash。)非常感谢所有帮助。Tnx。
如果您希望脚本的参数($1
)最终作为mediainfo的参数,则只需将其放在此处:
# ...
mediainfo "$1" | grep Duration | sort -u
# ...
这适用于脚本的单个参数。更灵活地,您可以循环遍历脚本的所有参数,并将它们一次提供给mediainfo:
for file in "$@"
do
mediainfo "$file" # ...
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句