小编Jan*_*Jan的帖子

计算在线会议的总时间

假设有一个会议,并且会议记录保存在 CSV 文件中。如何编写 bash 脚本/awk 脚本来找出员工在线的总时间。一名员工可以离开并重新加入会议,应计算其所有在线时间。

我所做的如下,但被困在如何将一个记录与所有其他记录进行比较,并添加每个加入和离开一个人的总时间。

#!/bin/bash

inputFile=$1
startTime=$(date -u -d $2 +"%s")
endTime=$(date -u -d $3 +"%s")

awk 'BEGIN{ FS=","; totalTime=0; }

        {
            for (rows=1; rows <= NR; rows++) {
             #I am stuck here on how to compare a record with each and every record
                     if (($1==?? && $2=="Joined") && ($1==?? && $2=="Left")) {
                     totalTime=$($(date -u -d $3 +"%s")-$(date -u -d $3 +"%s"))
       print $1 "," $totalTime +"%H:%M:%S"
 }' $inputFile
Run Code Online (Sandbox Code Playgroud)

会议的开始时间和结束时间在命令行中给出,例如:

$ ./script.sh input.csv 10:00:00 13:00:00

输出看起来像这样:(可以存储在输出文件中)

Bob, …
Run Code Online (Sandbox Code Playgroud)

bash shell scripting awk sed

5
推荐指数
1
解决办法
112
查看次数

标签 统计

awk ×1

bash ×1

scripting ×1

sed ×1

shell ×1