如何编辑 git 命令以使用逗号作为分隔符输出请求的数据

如何编辑 git 命令以使用逗号作为分隔符输出请求的数据

我正在运行下面的代码:

git rev-list --objects --all |
  git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' %(id)' |
  sed -n 's/^blob //p' |
  sort --numeric-sort --key=2 |
  gcut -c 1-12,41- |
  $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest

在 git 存储库中输出大数据文件。输出看起来像这样:

ne3ee2e43e1x 1.0MiB path/to/large/files.png ID

我想使用分号作为命令中调用的每个数据点之间的分隔符。所以预期的输出将是这样的:

ne3ee2e43e1x; 1.0MiB; path/to/large/files.png; ID

更新:

根据马库斯的回答尝试执行以下操作。

git rev-list --objects --all | git cat-file --batch-check='%(objecttype);%(objectname);%(objectsize);%(rest)' | sed -n 's/^blob //p' | awk '$2 >= 2^20' | sort --numeric-sort --key=2 | gcut -c 1-12,41- |$(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=1 --round=nearest

但这最终并没有复制任何东西。

答案1

您可以使用参数自行指定输出格式--batch-check。因此,在格式字符串中添加分号!请参阅“批量输出”部分git cat-file手册页

objecttype另外,如果您要处理的 blob 输出只是使用 sed 删除它,为什么还要向 git 询问呢?

相关内容