linux - awk输出不会打印到文件

标签 linux bash git unix awk

#!/usr/bin/env bash
for x in $(ls git-report/)
do
    repo_name=${x/.txt/}
    while IFS=' ' read -r col1 col2;
    do
        pushd "backend-projects/${repo_name}"
        git diff --numstat ${col2}..master | awk 'NF==3 {plus+=$2} END {print plus}' | cat >> /tmp/repos/${repo_name}.txt
        git diff --numstat ${col2}..master | awk 'NF==3 {minus+=$1} END {print minus}' | cat >> /tmp/repos/${repo_name}.txt
        cat /tmp/repos/${repo_name}.txt >> /tmp/script
        popd
        echo "# ----------- "
    done < "git-report/$x"
done

所以我有两个目录,git-report和单独的文本文件,其中包含每个存储库的所有未合并的分支名称。第二个backend-projects包含所有存储库。
手动执行这些命令会写入文件,但在运行bash脚本时失败。我做错什么了?

最佳答案

对awk使用tee命令而不是cat
如:

git diff --numstat ${col2}..master | awk 'NF==3 {plus+=$2} END {print plus}' | tee /tmp/repos/${repo_name}.txt

希望这对你有帮助。

关于linux - awk输出不会打印到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701496/

相关文章:

git - 有没有办法在远程存储库树上执行 git-grep 命令?

git - 在 git 历史记录中查找特定作者触及的所有文件?

git - 无法打开用户的 ssh/authorized_keys

linux - 如何提取不带扩展名的文件名并使用提取的名称在同一文件中更改标题?

linux - 如何使用flock来编排不同程序的运行,使它们能够在不同的时间运行?

linux - 使用awk从/proc/meminfo计算ram使用情况

linux - 如何编写脚本对多个 csv 文件执行一些基本操作

iphone - 在 bash 中解析 mobileprovision 文件?

php - Linux Centos MySQL PHP InnoDB 上的内存管理

PHP脚本: How big is too big?