通过git命令统计出了我在某个分支上改动的所有文件列表(文件路径是以和git工作区根目录的相对路径保存的),写入了一个文件all.txt。但是,随即发现,这个列表中的某些文件是我在开发过程中新建,然后有删除的,现在工作区中并不存在这个文件。
由于工作区的目录层级比较多,文件也比较多,挨个检查基本是不可能的。于是,写了下面的脚本,放在git工作区的根目录运行,就能够找出那些不存在的文件:
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的简单排序,去重命令,可以对这些结果进行筛选和简单处理。