我正在使用这个答案中的最后一个命令https://stackoverflow.com/a/54818581/80353 https://stackoverflow.com/a/54818581/80353
cap()(cd /tmp;rm -f *.vtt;youtube-dl --skip-download --write-auto-sub "$1";sed '1,/^$/d' *.vtt|sed 's/<[^>]*>//g'|awk -F. 'NR%8==1{printf"%s ",$1}NR%8==3'|tee cap)
该命令当前执行的操作
- 此命令会将 YouTube 视频的字幕下载为 .vtt 文件,并且
- 然后在终端上打印出 .vtt 文件的简化版本
该命令按描述工作。
如何使用该命令
在终端中,我将运行上面的命令一次,然后运行cap $youtube_url
我喜欢拥有什么
我想修改原来的cap()
功能,以便原始行为保留一个额外的部分
- 此命令会将 YouTube 视频的字幕下载为 .vtt 文件(未更改)
- 然后将 .vtt 文件的简化版本打印到另一个文件中,该文件被指定为参数 $2 (已更改)
我期望如何调用新命令
最初,我将原始命令称为
cap $youtube_url
现在我喜欢这样做
cap $youtube_url $relative_or_absolute_path_of_text_or_markdown_file
如何修改原来的 cap 命令才能达到我想要的结果?
考虑到您希望在屏幕上看到输出,并且也希望将输出保存到输出文件中,如果是这种情况,您可以尝试以下操作。
cap()(cd /tmp;rm -f *.vtt;youtube-dl --skip-download --write-auto-sub "$1";sed '1,/^$/d' *.vtt|sed 's/<[^>]*>//g'|awk -F. 'NR%8==1{printf"%s ",$1}NR%8==3'|tee -a "$2")
或者以非单衬形式使用:
cap()(cd /tmp;rm -f *.vtt;youtube-dl --skip-download --write-auto-sub "$1";\
sed '1,/^$/d' *.vtt|sed 's/<[^>]*>//g'|awk -F. 'NR%8==1{printf"%s ",$1}NR%8==3'\
|tee -a "$2")
请确保您在变量中提供了完整路径,例如-->relative_or_absolute_path_of_text_or_markdown_file="/full/path/output_file.txt"
等等只是一个例子。我无法测试它,因为我的盒子里没有 vtt 文件等机制。
如果您不想在屏幕上打印信息而只想将输出保存到输出文件中,则仅使用 @oguz ismail 的注释tee "$2"
not tee -a "$2"
如我上面所示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)