假设有一个会议,并且会议记录保存在 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)