将秒转换为分钟

Joe*_*Joe 2 bash awk

我目前有一个功能,可以从 cmus 打印位置和持续时间,并将其格式化为“1/500”。我遇到的问题是,我希望以分钟而不是秒(0:01/8:20 而不是 1/500)显示位置和持续时间数据,但我不知道如何实现这个。

目前该函数的相关部分如下所示:

print_music(){
    if ps -C cmus > /dev/null; then
        position=`cmus-remote -Q |
            grep --text '^position' |
            sed -e 's/position //' |
            awk '{gsub("position ", "");print}'`
        duration=`cmus-remote -Q |
            grep --text '^duration' |
            sed -e 's/duration //' |
            awk '{gsub("duration ", "");print}'`
        echo "[$position/$duration]"; else echo "";
    fi
}
Run Code Online (Sandbox Code Playgroud)

gle*_*man 7

这将帮助您:

sec2min() { printf "%d:%02d" "$((10#$1 / 60))" "$((10#$1 % 60))"; }
Run Code Online (Sandbox Code Playgroud)
$ sec2min 500
8:20
$ sec2min 1
0:01
Run Code Online (Sandbox Code Playgroud)