Sorting 如何按日期对SVN LS-R输出进行排序
我想列出我的svn中的所有文件,按上次提交的日期排序Sorting 如何按日期对SVN LS-R输出进行排序,sorting,date,svn,ls,Sorting,Date,Svn,Ls,我想列出我的svn中的所有文件,按上次提交的日期排序svnls-Rv列出所有文件,但它不接受-t开关。有人知道怎么做吗 (我已经看到了关于svn status的答案,但我不清楚如何将其更改为与svn ls一起使用) 仍然没有回答:能够按添加到SVN的日期对文件进行排序也会很有帮助。使用并按2014-08-20T12:34:46.712712Z进行排序。在我的Windoz框中,下面的操作完成 svn ls -Rv | sort 对于Unix,您很可能必须使用开关指定数字排序顺序“-n”今天遇到了
svnls-Rv
列出所有文件,但它不接受-t
开关。有人知道怎么做吗
(我已经看到了关于svn status
的答案,但我不清楚如何将其更改为与svn ls
一起使用)
仍然没有回答:能够按添加到SVN的日期对文件进行排序也会很有帮助。使用并按
2014-08-20T12:34:46.712712Z进行排序。
在我的Windoz框中,下面的操作完成
svn ls -Rv | sort
对于Unix,您很可能必须使用开关指定数字排序顺序“-n”今天遇到了这个挑战。其他的选择对我不起作用。我想出了一个简短的Perl脚本来完成这项工作。也许可以把它变成一行,但我不想这样 将代码放入svn-sort.pl。命令行看起来像这样:
svn ls$url | perl svn-sort.pl | sort
我希望这有帮助
#!/usr/bin/env perl
use strict;
use warnings;
# Main entry point.
sub main {
my $input;
# Read into string instead of array.
{
local $/ = undef;
$input = <>;
}
my $count = 0;
my $limit = 0;
my @matches;
while ($input =~ m|<entry.+?<name>([^<]+?)</name>.*?<date>([^<]+?)</date>.*?</entry>|gs) {
push @matches, [$1, $2];
}
foreach my $m (@matches) {
print "$m->[1]\t$m->[0]\n";
if ($limit > 0 && ++$count > $limit) {
last;
}
}
}
# Go.
&main(@ARGV);
#/usr/bin/env perl
严格使用;
使用警告;
#主要入口点。
副总管{
我的$input;
#读入字符串而不是数组。
{
本地$/=undef;
$input=;
}
我的$count=0;
我的$limit=0;
我的@matches;
而($input=~m|0&++$count>$limit){
最后;
}
}
}
#去吧。
&main(@ARGV);
在我的Linux发行版上也很有魅力,不需要切换:)