【问题标题】:How can I sort columns of text in Vim by size?如何按大小对 Vim 中的文本列进行排序?
【发布时间】:2014-03-13 06:02:26
【问题描述】:

鉴于此文本

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 个大小列上失败了。

我做错了什么?

【问题讨论】:

    标签: sorting vim


    【解决方案1】:

    我想我已经明白了。

    :%!sort -k4 -bk3g
    

    我按第 4 列 (-k4) 排序,然后是第 3 列。我们忽略前导空格 (b),这次我们使用一般数字排序 (g)。

    I blogged about this too

    【讨论】:

      【解决方案2】:

      我不知道如何用sort() 处理它。我发现小数点有问题,虽然我改变了LC_NUMERIC环境变量,所以我会切换到来解决它,比如:

      :%!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
      '
      

      如果从 内部运行,请将其放在同一行中。它产生:

      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
      

      【讨论】:

      • 谢谢,但我想要一个 sort 实用程序版本,我想我永远不会记得所有 Perl ;) 谢谢你 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多