首页 > 解决方案 > 向 Git 存储库中的所有文件添加缺少的尾随换行符

问题描述

我的 Git 存储库中的许多文件都缺少尾随换行符:

GitHub通知

为了保持一致性,并消除与 git 相关的视觉混乱,我想自动将它添加到它丢失的地方。

标签: bashtrailing-newline

解决方案


#!/bin/bash

RED='\033[0;31m'
GREEN='\033[0;32m'
GREY='\033[0;30m'
RESET='\033[0m' # No Color

#files=$(find ./files -type f)
files=$(git ls-files)

for file in $files; do
    if [[ $(tail -c 1 "$file" | xxd -p) != 0a ]]; then
        echo -en "Fix ${RED}$file${RESET}? (y/n) "
        read -n 1  answer
        echo
        if [[ $answer = 'y' ]]; then
            echo -e "FIXING ${GREEN}$file${RESET}"
            echo >> $file
        else
            echo "Skipping $file"
        fi
    else
        echo -e "${GREY}$file has newline${RESET}"
    fi
done


推荐阅读