簡體   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