通過git命令統(tǒng)計出了我在某個分支上改動的所有文件列表(文件路徑是以和git工作區(qū)根目錄的相對路徑保存的),寫入了一個文件all.txt。但是逼泣,隨即發(fā)現(xiàn)玫镐,這個列表中的某些文件是我在開發(fā)過程中新建,然后有刪除的箩溃,現(xiàn)在工作區(qū)中并不存在這個文件瞭吃。
由于工作區(qū)的目錄層級比較多,文件也比較多涣旨,挨個檢查基本是不可能的歪架。于是,寫了下面的腳本霹陡,放在git工作區(qū)的根目錄運行和蚪,就能夠找出那些不存在的文件:
test_exists.sh:
cat all.txt |
while read file_name;
do
if [ -e $file_name ]; then
echo "$file_name"
else
echo " not exist: $file_name"
fi;
done
這個腳本中就用到了一個知識點,就是shell如何判斷文件存在烹棉。下面是一個運行的例子:
$ ls
a.txt all.txt b.txt test_exists.sh
$ cat all.txt
a.txt
all.txt
b.txt
merge.sh
$ sh test_exists.sh
a.txt
all.txt
b.txt
not exist: merge.sh
$
然后惠呼,通過vim的簡單排序,去重命令峦耘,可以對這些結果進行篩選和簡單處理剔蹋。