我写了以下脚本:
for filename in `find . -name '*'.cpp | grep $IN_REGEX | grep -v $OUT_REGEX` do echo "Output file is $OUTPUT_FILE" count=`git log --pretty=format: --name-only $filename | grep -v ^$ | wc -l` echo "$count $filename" >> $OUTPUT_FILE done
但没有任何内容写入输出文件。
请注意:
有人可以指出我的错误在哪里吗?
答案 0 :(得分:1)
这行代码
for filename in `find . -name '*'.cpp
是
(中断文件名中的空格)
你应该这样做:
while IFS= read -r file; do
echo "Output file is $OUTPUT_FILE"
count=$(git log --pretty=format: --name-only "$file" | grep -v '^$' | wc -l)
echo "$count $file" >> "$OUTPUT_FILE"
done < <(find . -name '*.cpp' | grep "$IN_REGEX" | grep -v "$OUT_REGEX")
为此,请确保$OUTPUT_FILE
中有路径。