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

如何实现文本文件按日更新行记录 支持awk/sed等方案及cron调度

按日更新数值记录的实现方案

核心实现逻辑

直接用awk单行命令即可满足需求,无需复杂的条件分支判断,核心思路:

  • 遍历现有记录文件,仅保留非当日的所有历史记录
  • 跳过原文件中当日的旧记录,末尾追加当日最新记录
  • 最终输出直接覆盖原文件,自动完成「当日覆盖、历史保留」的要求

可直接用于cron调度的完整脚本

假设你提前定义好以下变量:

  • RECORD_FILE:存储记录的目标文件绝对路径
  • NEW_VALUE:本次要写入的最新数值
  • CUR_DATE:当日日期,格式统一为YYYY-MM-DD

你可以直接使用以下命令:

#!/bin/bash
RECORD_FILE="/your/absolute/path/to/daily_records.csv"
NEW_VALUE="你的最新数值"
CUR_DATE=$(date +%Y-%m-%d)

# 核心处理逻辑,自动处理文件不存在、当日记录覆盖、历史记录保留逻辑
awk -F ',' -v cur_date="$CUR_DATE" -v new_val="$NEW_VALUE" '
BEGIN {OFS = ", "}
$1 != cur_date {print $0}
END {print cur_date, new_val}
' "$RECORD_FILE" > "$RECORD_FILE.tmp" && mv "$RECORD_FILE.tmp" "$RECORD_FILE"

逻辑验证(匹配你的预期输出示例)

  1. 第1天上午10点执行,文件为空,最终写入:2021-08-17, 5.20
  2. 第1天晚上11点执行,原文件中当天记录被过滤,新增最新值:2021-08-17, 12.10
  3. 第2天上午10点执行,前一天的记录保留,新增当天记录:
2021-08-17, 12.10
2021-08-18, 4.90
  1. 第2天晚上11点执行,仅覆盖当天记录,最终:
2021-08-17, 12.10
2021-08-18, 13.10

注意事项

  • cron调度时所有文件路径必须写绝对路径,避免cron工作目录异常导致找不到文件
  • 若数值包含空格、特殊符号,提前用引号包裹NEW_VALUE变量即可正常处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:09:00