You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BASH脚本结合AWK、GREP和管道提取损失时段轮盘赌发牌员信息

提取损失发生时轮盘赌发牌员信息的Bash脚本实现

前提说明

  • 假设损失时间记录文件为 loss_records.txt,每行格式示例:03/10/2020 08:00:00 AM
  • 排班文件命名规则为 MMDD_Dealer_schedule(比如3月10日对应 0310_Dealer_schedule)
  • 排班文件中,每行时间格式为 HH:MM:SS AM/PM,轮盘赌发牌员的名和姓位于第3、4列(可根据实际文件结构调整列数)

脚本代码

#!/bin/bash

# 逐行读取损失记录文件
while read -r line; do
    # 从记录中提取日期并转换为MMDD格式(适配排班文件名)
    date_code=$(echo "$line" | awk '{split($1, d, "/"); printf "%02d%02d", d[1], d[2]}')
    # 提取时间与AM/PM标记
    target_time=$(echo "$line" | awk '{print $2, $3}')
    # 拼接目标排班文件名
    schedule="${date_code}_Dealer_schedule"

    # 检查排班文件是否存在
    if [ -f "$schedule" ]; then
        # 匹配对应时间行,提取轮盘赌发牌员姓名
        dealer=$(grep "^$target_time" "$schedule" | awk '{print $3, $4}')
        # 格式化输出结果
        echo "时间: $target_time | 轮盘赌发牌员: $dealer"
    else
        echo "警告:未找到排班文件 $schedule"
    fi
done < loss_records.txt

关键逻辑说明

  1. 日期格式转换:通过awk拆分日期字段,用printf将MM/DD格式转为MMDD,匹配排班文件命名规则
  2. 时间匹配:用grep精准定位排班文件中对应时间的行(^确保匹配行首时间,避免部分匹配)
  3. 字段提取:用awk提取指定列的发牌员姓名,可根据实际排班文件的列位置调整$3, $4
  4. 异常处理:检查排班文件是否存在,避免因文件缺失导致的报错

示例测试

假设loss_records.txt内容:

03/10/2020 08:00:00 AM
03/11/2020 09:30:00 PM

0310_Dealer_schedule内容:

08:00:00 AM John Doe Jane Smith
09:00:00 AM Alice Bob Charlie Brown

运行脚本后输出:

时间: 08:00:00 AM | 轮盘赌发牌员: John Doe
警告:未找到排班文件 0311_Dealer_schedule

内容的提问来源于stack exchange,提问作者pat Markey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 13:55:20