是否有一个实用程序可以从命令行搜索 YouTube,然后根据用户输入查看或下载搜索结果?
\n\n$ youtube-search madonna\n\n1 Madonna - Hung Up (Official Music Video)\nmadonna \xe2\x99\xa9 180M views 9 years ago\nhttps://www.youtube.com/watch?v=EDwb9jOVRtU\n"Hung Up" by Madonna from Confessions On A Dance Floor, available now.\n\n2 Madonna - Like A Prayer (Official Music Video)\nmadonna \xe2\x99\xa9 69M views 9 years ago\nhttps://www.youtube.com/watch?v=79fzeNUqQbQ\n2006 WMG Like A Prayer.\n\netc.\nRun Code Online (Sandbox Code Playgroud)\n\n然后你可以输入:
\n\n到目前为止我尝试过的:
\n\ngoogler部分与 YouTube 配合使用,但由于某种原因,在搜索“麦当娜”时仅显示两个搜索结果。此外,也无法在查看和下载之间进行选择。
\n\nyoutube-dl有搜索功能,但似乎不打印搜索结果也不接受用户输入。youtube-dl -j ytsearch:madonna列出有关搜索结果的元数据,但似乎不包含所需的视频链接、标题和说明。
如何在以下命令中支持带空格的文件名?
echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"
Run Code Online (Sandbox Code Playgroud)
我尝试了以下似乎不起作用的方法:
echo ... \"$filename\")echo '$(... "open..." "$filename")'echo $(...'open ... "$filename")我有一个一千行的 Bash 脚本,每行都包含一个ffmpeg命令。我从source script它开始,它运行得很好。
然而,当我尝试以各种方式控制这个脚本时,事情完全出错了:
Ctrl + Z暂停整个事情,只有当前的 ffmpeg命令被暂停,下一个开始!不是我想要的!Ctrl + C要停止一切,脚本会跳转到下一个ffmpeg命令,我必须对脚本中的每一行按一次才能最终停止一切。纯粹的地狱。ps -ef从另一个 shell使用来定位source命令以从那里暂停/终止它,但它不存在于列表中。那么我怎样才能按照我希望的方式暂停/停止父脚本呢?或者,我如何才能以不同的方式开始执行脚本,让我对它进行适当的控制?
在 Bash 中,我将字段从一行读出到一个数组中。让我强调一下,性能是一个问题,所以我负担不起任何会产生子进程的东西。
为了使代码更具可读性,我希望将字段转换为变量:$width比${array[0]}. 我必须手动设置每个变量,像这样,重复很多:
while read line; do
array=($line)
width=${array[0]}
height=${array[1]}
size=${array[2]}
date=${array[3]}
time=${array[4]}
# use $width, $height, etc. in script
done < file
Run Code Online (Sandbox Code Playgroud)
有没有什么紧凑的方法可以做到这一点,比如listPHP 中的指令?
list($width, $height, $size, $date, $time) = $array;
Run Code Online (Sandbox Code Playgroud) 我怎样才能持续一个文件的最后一行打印到单一的终端线?
以下工作,但具有高性能命中。
while true; do tail -1 /tmp/somelog | tr "\012" "\015"; done
Run Code Online (Sandbox Code Playgroud) 执行时ps -r -e -o pcpu=,comm=,显示每个进程的 CPU 百分比,该值是在多长时间内测量的?是一秒钟吗?手册页似乎没有提到这一点。
还有一个后续问题:是否可以ps(或另一个标准 UNIX 实用程序)报告较长时间内(例如 5 秒)每个进程的 CPU 百分比?(显然,人们可以收集 5 个值并计算平均值,但我不确定这是否正确......)
附言!如果重要的话,我使用的是 macOS(运行 BSD 变体)。
如何使用带有空格和单引号的递归目录和文件名进行快速文本替换?最好使用标准的 UNIX 工具,或者一个众所周知的包。
find对于许多文件,使用速度非常慢,因为它为每个文件生成一个新进程,因此我正在寻找一种将目录遍历和字符串替换集成为一个操作的方法。
慢搜索:
find . -name '*.txt' -exec grep foo {} \;
Run Code Online (Sandbox Code Playgroud)
快速搜索:
grep -lr --include=*.txt foo
Run Code Online (Sandbox Code Playgroud)
缓慢替换:
find . -name '*.txt' -exec perl -i -pe 's/foo/bar/' {} \;
Run Code Online (Sandbox Code Playgroud)
快速更换:
# Your suggestion here
Run Code Online (Sandbox Code Playgroud)
(这个速度相当快,但是是两次传递并且不处理空格。)
perl -p -i -e 's/foo/bar/g' `grep -lr --include=*.txt foo`
Run Code Online (Sandbox Code Playgroud)