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

如何编写Shell脚本筛选CSV文件特定范围外数值并统计

修正后的Shell脚本实现方案

以下是满足需求的Shell脚本:

#!/bin/bash

# 初始化统计变量
total_records=0
abnormal_records=0

# 跳过表头,逐行读取数据
while IFS="," read -r time temp
do
    # 统计总记录数
    ((total_records++))

    # 判断温度是否不在30-35范围内(数值比较)
    if (( temp < 30 || temp > 35 )); then
        echo "Time : $time Temp : $temp"
        ((abnormal_records++))
    fi
done < <(tail -n +2 parse22.csv)

# 输出统计结果
echo "------------------------"
echo "总记录数(排除表头): $total_records"
echo "异常记录数: $abnormal_records"

关键修正说明

  • 变量引用修正:原脚本错误使用未定义的${Temp}变量,改为直接读取CSV第二列的temp变量
  • 数值比较逻辑修正:原脚本用>作为比较符(在[ ]中这是重定向符号,并非数值大于),改用(( ))进行算术比较,同时补充温度小于30的异常判断
  • 统计功能添加:初始化total_records和abnormal_records变量,每次循环累加总记录数,触发异常条件时累加异常记录数,循环结束后输出统计结果
  • 可读性优化:将column1、column2改为语义化的time、temp变量名,提升脚本可读性

内容的提问来源于stack exchange,提问作者Ram Prasad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 01:46:08