我可以通过 Whiptail 跟踪 rsync 进度,使用 Awk 解析 rsync 输出,但是,我对为什么 Perl 对应项不起作用(Whiptail 计量器停留在 0)感到困惑。
这是工作的 awk 命令行:
rsync --info=progress2 --no-inc-recursive --human-readable <source> <destination> |
stdbuf -o0 awk -v RS='\r' '$2 ~ /%$/ { print substr($2, 0, length($2) - 1) }' |
whiptail --gauge Syncing 20 80 0
这是 Perl(我假设)等价物:
rsync --info=progress2 --no-inc-recursive --human-readable <source> <destination> |
stdbuf -o0 perl -lne 'BEGIN { $/ = "\r" } print /(\d+)%/' |
whiptail --gauge Syncing 20 80 0
如果我从 Perl 版本中删除 Whiptail 命令,则会按预期打印百分比数字。
我需要如何修改 Perl 版本?