我正在尝试将wget
命令的过滤输出写入文件,但它总是附加到文本文件并显示一些无法识别的字符。
以下脚本将在 CLI 上很好地输出 1% 、 2% 等,但是当我将输出重定向到文本文件时,它会显示一些连线字符并且全部被附加而不是被覆盖。
#!/bin/sh
download()
{
local url=$1
wget --progress=dot $url 2>&1 | grep --line-buffered "%" | \
sed -u -e "s,\.,,g" | awk '{printf("\b\b\b\b%4s", $2)}'
echo " DONE"
}
file="$1"
echo -n "Downloading $file:"
download "$file" > file.log
我尝试使用>
将不起作用,我在哪里做错了?
这是我在文件中找到的。
1% 2% 3% 5% 6% 7% 9% 9% 10% 11% 13% 13% 13% 14%
但应该是
14%
只是目前的进展。
我要做的就是写入当前文件进度(如10%
),这样我就可以读取文件并定期检查文件进度以用于前端目的。