0

我正在编写一个小脚本来将视频大量上传到 youtube。它看起来像这样:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "description" "$file"
done

youtube -upload是一个基于 cli 的 python 上传器。

我的问题是您可以看到我从文件名路径中获取标题,并且描述始终相同:(。我想将描述写入文本或 xml 文件解析它,然后使用适当的上传每个文件的描述..

如何在这种情况下使用 shell 命令来做到这一点?

感谢您的建议

4

1 回答 1

1

拥有一个包含所有文件名-> 描述映射的文件:

my file.mp4 this is a description
file2.mp4 this is another description
my last file.mp4 this is a description
ilied.mp4 description

然后只需抓住以文件名开头的行并使用该行的其余部分:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "$(grep "^$(basename "$file")" desc | sed 's/.*.mp4 //')" "$file"
done

看看里面有什么$(...)

grep "^$(basename "$file")" desc | sed 's/.*.mp4 //'

grep“desc”文件中找到以 basename($file) 开头的行,然后用于sed删除文件名,留下该行的其余部分(这将是描述)。

请注意,这不需要命令youtube-upload行的一部分。你也可以把它扔进一个变量中:

#! /bin/sh
python --version
for file in ./*.mp4 ; do
        export title=$(basename "$file" ".mp4")
        echo $title "for" $file
        description=$(grep "^$(basename "$file")" desc | sed 's/.*.mp4 //')
        youtube-upload -m mail@mailer.com -p pass -c Category -t "$title" -d "$description" "$file"
done
于 2013-05-04T14:38:48.920 回答