使用 sort 对 Vim 中的文本列进行排序

  1. 当前有一个原始内容如下,比较混乱:
adfaldjfa   13      9    MB
fldalfjlk    2     8    KB
dfaljdfka    30    32   KB
dadfadfas    272    31    KB
dflajdlfj    212   4   MB
kalkdjkla    17     64    KB
faldkjfla    209   168     KB
fladdjflk  34     2   MB
cwljfklla 1476    3   KB
fadslfjal    5     680     KB
faldfjala    1129    968     KB
  1. 首先将文本按照适当的列排序, 形成美观的间隔
:%!column -t
dfaldjfa   13    9    MB
fldalfjlk  2     8    KB
dfaljdfka  30    32   KB
dadfadfas  272   31   KB
dflajdlfj  212   4    MB
kalkdjkla  17    64   KB
faldkjfla  209   168  KB
fladdjflk  34    2    MB
cwljfklla  1476  3    KB
fadslfjal  5     680  KB
faldfjala  1129  968  KB
  1. 将第2列的数据从大到小排序
:%!sort -k2nr

按第二列排序 (-k2),将文本视为数字 ( n),然后反向排序 ( r),结果为:

cwljfklla  1476  3    KB
faldfjala  1129  968  KB
dadfadfas  272   31   KB
dflajdlfj  212   4    MB
faldkjfla  209   168  KB
fladdjflk  34    2    MB
dfaljdfka  30    32   KB
kalkdjkla  17    64   KB
dfaldjfa   13    9    MB
fadslfjal  5     680  KB
fldalfjlk  2     8    KB
  1. 如果按照文件的大小排序,需要结合第3 和第4列的内容排序:
:%!sort -k4 -bk3g

首先按第 4 列 ( -k4) 排序,然后按第 3 列排序,但这次我们需要忽略第4列的前导空格 ( b),这次我们使用常规数字排序 ( g),结果如下,Nice ~~

cwljfklla  1476  3    KB
fldalfjlk  2     8    KB
dadfadfas  272   31   KB
dfaljdfka  30    32   KB
kalkdjkla  17    64   KB
faldkjfla  209   168  KB
fadslfjal  5     680  KB
faldfjala  1129  968  KB
fladdjflk  34    2    MB
dflajdlfj  212   4    MB
dfaldjfa   13    9    MB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值