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

如何将bash脚本输出拆分为两字段并从CSV文件第3行开始插入

解决方案

你的思路完全可行,也可以直接通过管道一步处理不需要额外临时文件,两种实现方式如下:

方式一:直接一步生成最终csv(无需临时文件)

该方案兼容带空格的文件路径,避免拆分错误:

#!/bin/bash
# 写入固定表头
echo "title,Path" > final.csv
echo "" >> final.csv
# 获取最新commit id
cid=$(git log -n 1 --pretty=format:"%H")
# 处理差异文件的md5并直接转换为逗号分隔格式追加到文件
git diff-tree --no-commit-id --name-only -r "$cid" | xargs -I {} md5sum {} | awk '{printf "%s,%s\n",$1,substr($0,35)}' >> final.csv

方式二:按你提到的临时文件方案实现

#!/bin/bash
cid=$(git log -n 1 --pretty=format:"%H")
# 第一步:将原始md5输出写入临时文件
git diff-tree --no-commit-id --name-only -r "$cid" | xargs -I {} md5sum {} > tmp_md5.txt

# 第二步:写入表头并处理临时文件生成最终csv
echo "title,Path" > final.csv
echo "" >> final.csv
awk '{printf "%s,%s\n",$1,substr($0,35)}' tmp_md5.txt >> final.csv

# 可选:清理临时文件
rm -f tmp_md5.txt

说明

substr($0,35)的作用是截取md5sum输出行中第35位开始的所有内容:md5sum标准输出为32位哈希值 + 2个空格 + 文件路径,从第35位开始截取可以拿到完整的文件路径,哪怕路径中包含空格也不会出现拆分错误,兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:24:03