繁体   English   中英

awk输出不会打印到文件

[英]awk output does not print to file

#!/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脚本时会失败。 我究竟做错了什么?

使用tee命令代替带awk的cat

例如:

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

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM