SVN状态按降序显示文件(修改日期)

时间:2014-03-06 20:36:10

标签: sorting date unix svn ls

有谁知道如何对“svn st”的输出进行排序以按降序显示文件?实质上,相当于'ls -lt'

我一直在运行'find ./ -mtime -1 -print'以查看我在最后一天更改了哪些文件,但我想知道是否有办法使用svn向我显示SVN文件列表我按降序改变了。

我一直在研究一个项目大约2个月,所有这些都是本地编辑,100多个文件,我想根据我编辑它们的时间排序。

2 个答案:

答案 0 :(得分:2)

svn status | while read -N 8 status && read file; do
    mtime=$(stat -c %Y "$file" 2>/dev/null || echo 0)
    printf '%010d\t%s%s\n' "$mtime" "$status" "$file"
done | sort -rn | cut -f 2-

while循环将文件名与状态指示符分开,然后在每行前面加上文件的修改时间。然后通过管道输出该输出以按修改时间对它们进行排序。最后,cut删除时间戳,保留原始输出但按排序顺序。

已删除的文件最终位于底部,因为您删除它们的时间未知。如果您希望将它们放在最上面,请将echo 0更改为echo 999999999

答案 1 :(得分:0)

svn stat | grep "^M" | awk '{print $NF}' | xargs ls -lt

这将获取所有修改的文件,并在批处理上运行ls -lt。