我可以獲取youtube 播放串列中每個檔案的檔案大小,但是如何將所有單個檔案大小加在一起以獲得所有檔案大小的總大小(以兆位元組或千兆位元組為單位)?
示例:Linux / Ubuntu 命令
youtube-dl --get-filename -o "File size for %(id)s (%(format_id)s): %(filesize)s = 125*%(duration)s*%(tbr)s" -f "22/best" --ignore-config "https://www.youtube.com/watch?v=b26ZBgspv7M&list=PLLYQF5WvJdJXE-aP7oF5ucXcCfHmub34A" | (IFS='='; while read -r a b; do echo "$a = $(echo "$b" | bc)"; done)
File size for b26ZBgspv7M (22): NA = 632016.000
File size for nPr3qtZ5FVE (18): NA = 47577837.000
File size for 8FCsS6s1Z0k (18): NA = 67788616.500
File size for TZANoOWFX1M (18): 62402644 = 62393587.750
File size for XA5eobevGv8 (22): NA = 117960449.500
File size for lDplUpPoCcI (22): NA = 175676293.75
File size for a7TUIkn3qjY (22): NA = 299391049.125
File size for HFPObieGamg (22): NA = 270756696.875
File size for PiiDs8dzSXk (22): NA = 55946363.250
File size for tth0p7nK18A (22): NA = 31281180.00
File size for Z_xj9ZTV8ak (22): NA = 126366879.000
File size for Y_YHqM5nTHA (22): NA = 42328527.000
File size for BjV-fRCPgAM (22): NA = 42225633.375
uj5u.com熱心網友回復:
您似乎知道如何拆分輸入 - 然后將其相加。
youtube-dl ..... | (
sum=0
while IFS='=' read -r a b; do
sum=$(echo "$sum $b" | bc)
done
echo "The sum: $sum"
)
讓自己感興趣awk,這是一個真正方便的工具。您可以搜索“如何在 awk 中對列求和”以確保您會獲得大量示例。
uj5u.com熱心網友回復:
你幾乎已經做到了:
youtube-dl ...args... |
{ while IFS='=' read -r a b; do printf '%s ' "$b"; done; echo 0; } | bc
或使用cut和tr:
youtube-dl ...args... |
{ cut -d= -f2 | tr '\n' ; echo 0; } | bc
或使用 sed
youtube-dl ...args... |
sed 's/.*=//;H;$!d;g;s/.//;s/\n/ /g' | bc
uj5u.com熱心網友回復:
撰寫整個算術以提供給bc:
#!/usr/bin/env sh
echo "125*(0$(youtube-dl --get-filename -o " (%(duration)s*%(tbr)s)" -f "22/best" --ignore-config "https://www.youtube.com/watch?v=b26ZBgspv7M&list=PLLYQF5WvJdJXE-aP7oF5ucXcCfHmub34A"))" |
{ tr -d '\n'; echo;} |
bc -l
首先列印125*(0
然后youtube-dl列印一系列的 (duration*tbr)后跟一個換行符,然后添加一個尾隨,)
結果如下:
125*(0 (duration*tbr)
(duration*tbr)
(duration*tbr)
)
要將其轉換為有效的bc計算語法,需要用 丟棄tr -d '\n'換行符,并添加最后的換行符echo
uj5u.com熱心網友回復:
包括單個檔案大小和最后的總和。
youtube-dl --get-filename -o "File size for %(id)s (%(format_id)s): %(filesize)s = 125*%(duration)s*%(tbr)s" -f "22/best" --ignore-config "https://www.youtube.com/watch?v=b26ZBgspv7M&list=PLLYQF5WvJdJXE-aP7oF5ucXcCfHmub34A" | (
sum=0
while IFS='=' read -r a b; do
echo "$a = $(echo "$b" | bc)"
sum=$(echo "$sum $b" | bc)
done
echo "The sum: $sum"
)
輸出:
File size for b26ZBgspv7M (22): NA = 632016.000
File size for nPr3qtZ5FVE (18): NA = 47577837.000
File size for 8FCsS6s1Z0k (18): NA = 67788616.500
File size for TZANoOWFX1M (18): 62402644 = 62393587.750
File size for XA5eobevGv8 (22): NA = 117960449.500
File size for lDplUpPoCcI (22): NA = 175676293.75
File size for a7TUIkn3qjY (22): NA = 299391049.125
File size for HFPObieGamg (22): NA = 270756696.875
File size for PiiDs8dzSXk (22): NA = 55946363.250
File size for tth0p7nK18A (22): NA = 31281180.00
File size for Z_xj9ZTV8ak (22): NA = 126366879.000
File size for Y_YHqM5nTHA (22): NA = 42328527.000
File size for BjV-fRCPgAM (22): NA = 42225633.375
The sum: 1340325129.125
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/373329.html
標籤:linux 猛击 乌本图 youtube-dl
上一篇:從終端下載youtube-dl但從java程式停止(相同的命令)
下一篇:計算沒有執行位的子目錄數
