鉴于此文本
affiliates 1038 680 KB
article_ratings 699 168 KB
authors 30 40 KB
fs.chunks 3401 633.89 MB
fs.files 1476 680 KB
nodes 1432 24.29 MB
nodes_search 91 2.8 MB
nodes_tags 272 40 KB
page_views 107769 16.37 MB
page_views_map 212 40 KB
recommendations 34305 45.1 MB
rewrite_rules 209 168 KB
sign_ups 10331 12.52 MB
sitemaps 1 14.84 MB
suppliers 13 8 KB
tariff_price_check_reports 34 540 KB
tariff_price_checks 1129 968 KB
tariffs 5 680 KB
users 17 64 KB
users_tags 2 8 KB
versions 18031 156.64 MB
如何按第4列和第3列排序,以便按文件大小排序?
我已尝试:%!sort -k4 -k3n
部分有效,但似乎在第3个尺寸列上失败。
我做错了什么?
答案 0 :(得分:1)
我想我已经明白了。
:%!sort -k4 -bk3g
我按第4列(-k4)排序,然后是第3列。我们忽略前导空格(b),这次我们使用通用数字排序(g)排序。
答案 1 :(得分:0)
我不知道如何使用sort()
处理它。我发现小数点有问题,虽然我更改了LC_NUMERIC
环境变量,所以我会切换到perl来解决它,如:
:%!perl -0777 -ne '
@l = map { [ $_, split " ", $_ ] } split /\n/, $_;
@l = sort { $a->[-1] cmp $b->[-1] or $a->[-2] <=> $b->[-2] } @l;
print "$_->[0]\n" for @l
'
如果来自vim内,请将其放在同一行中。它产生:
suppliers 13 8 KB
users_tags 2 8 KB
authors 30 40 KB
nodes_tags 272 40 KB
page_views_map 212 40 KB
users 17 64 KB
article_ratings 699 168 KB
rewrite_rules 209 168 KB
tariff_price_check_reports 34 540 KB
affiliates 1038 680 KB
fs.files 1476 680 KB
tariffs 5 680 KB
tariff_price_checks 1129 968 KB
nodes_search 91 2.8 MB
sign_ups 10331 12.52 MB
sitemaps 1 14.84 MB
page_views 107769 16.37 MB
nodes 1432 24.29 MB
recommendations 34305 45.1 MB
versions 18031 156.64 MB
fs.chunks 3401 633.89 MB