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

如何按文件名筛选TXT文件提取指定字符串、转换金额并汇总到新文件

实现方案

以下两种实现均默认提取每个文件首行第一个符合「数字+CCHKCTX」规则的字段,若需要提取同一行所有符合规则的字段,可自行修改正则匹配部分的逻辑,遍历所有匹配结果即可。

Shell 实现(适配Linux、macOS、WSL环境)

无需额外安装依赖,直接使用系统内置的bash、grep、awk工具即可完成:

#!/bin/bash
# 可修改的配置参数
TARGET_DATE="111121"  # 替换为你需要的日期前缀
RESULT_FILE="amount_summary.txt"

total=0
raw_values=()

# 遍历所有符合命名规则的txt文件
for file in ${TARGET_DATE}*.txt; do
    # 无匹配文件时跳过报错
    [ -f "$file" ] || continue
    # 提取首行CCHKCTX前的数字
    raw_num=$(head -n1 "$file" | grep -oE '[0-9]+(?=CCHKCTX)' | head -n1)
    if [ -n "$raw_num" ]; then
        raw_values+=("$raw_num")
        # 用awk处理浮点数计算避免bash整数限制
        total=$(awk -v tot="$total" -v num="$raw_num" 'BEGIN{print tot + num / 100}')
    fi
done

# 追加结果到输出文件
{
    echo "===== 统计日期: $TARGET_DATE  ====="
    echo "原始提取值列表:"
    for val in "${raw_values[@]}"; do
        echo "- $val"
    done
    echo "总金额(美元): $total"
    echo "----------------------------------"
} >> "$RESULT_FILE"

echo "统计完成,结果已追加到 $RESULT_FILE"

使用时直接修改TARGET_DATE为你需要的日期前缀即可,结果会自动追加到指定文件,不会覆盖历史内容。

PowerShell 实现(适配Windows原生环境)

兼容Windows自带的PowerShell 5.1及以上版本:

# 可修改的配置参数
$targetDate = "111121"  # 替换为你需要的日期前缀
$resultFile = "amount_summary.txt"

$rawValues = @()
$total = 0.0

# 遍历匹配命名规则的文件
Get-ChildItem -Filter "${targetDate}*.txt" -File | ForEach-Object {
    # 仅读取文件首行
    $firstLine = Get-Content $_.FullName -TotalCount 1
    # 匹配规则字段
    if ($firstLine -match '(\d+)CCHKCTX') {
        $rawNum = $matches[1]
        $rawValues += $rawNum
        $total += [decimal]$rawNum / 100
    }
}

# 追加写入结果,默认使用UTF8编码
$output = @"
===== 统计日期: $targetDate  =====
原始提取值列表:
$($rawValues | ForEach-Object { "- $_" } | Out-String)
总金额(美元): $total
----------------------------------

"@
Add-Content -Path $resultFile -Value $output -Encoding UTF8

Write-Host "统计完成,结果已追加到 $resultFile"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:10