【发布时间】:2020-04-03 04:42:29
【问题描述】:
上下文
我在https://stackoverflow.com/a/59244265/80353 成功回答了一个 SO 问题
我已经成功使用了给出的命令。
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")
这个命令有什么作用?
- 此命令将从 $1 参数将 youtube 视频的字幕下载为 .vtt 文件
- 然后将 .vtt 文件的简化版本打印到另一个文件中,该文件被声明为参数 $2
这和宣传的一样。
如何调用命令
在终端中我会运行一次上面的命令,然后运行cap $youtube_url $full_path_to_output_file
我想要什么改变
目前,$2 参数必须是完整路径。目前,如果 $2 参数不存在,将创建一个实际文件。我想要的是即使对于相对路径,这种行为仍然存在。所以希望对于相对路径,这种创建新空文件的行为仍然有效。
更新
我看到 cmets 是这样的,命令没有任何问题。
但是,我确实尝试过运行
cap $youtube_url $relative_path_to_a_text_file 在 macOS 中它绝对不适合我
也许我错过了其他东西?
更新 2
这是我运行 awk sed 命令的视频。首先,我只使用相对路径。当前工作目录中没有显示输出文件。第二个显示我输入完整路径并且它有效。
https://www.loom.com/share/1c179506fa5b48b4a3d62c81a9d2a411
我希望这可以澄清我提出的问题,并且评论者会根据此视频更新他们的 cmets。
【问题讨论】:
-
在显示的代码中,第二个参数不必是完整路径。它只需要指定一个可以创建或附加的文件。您可以使用
elephant或../pachyderms/elephant或mammoths/frozen/elephant并且只要目录../pachyderms或mammoths/frozen存在,$2就可以正常工作(第一个使用当前目录 - 通常存在)。 -
比较难修复没有损坏的东西...
-
@JonathanLeffler 我已经做了一个织机来澄清我的问题。希望这能说明为什么我认为 awk、sed 不适用于相对路径