按列长排序

时间:2018-08-30 19:45:30

标签: sorting unix cygwin

需要使用Unix命令按第四列的长度进行排序的帮助。

示例数据(所有数据都是虚构的,并非真实数据)。

5032:Stack:overflows@business.com:123:JamesPeterson
3200:Admin:admin@me.com:12ej3dij23i2j32:AdminAdmin
1024:GregoryJames:greg@admin.com:12329232:GregJames

首选格式(因为第4列的长度最长)。

3200:Admin:admin@me.com:12ej3dij23i2j32:AdminAdmin
1024:GregoryJames:greg@admin.com:12329232:GregJames
5032:Stack:overflows@business.com:123:JamesPeterson

1 个答案:

答案 0 :(得分:0)

使用awk添加一列,其中包含该列的长度,并以此排序,然后将其删除。

awk -F: '{printf("%d %s\n", length($4), $0)}' input.txt | sort -nr | cut -d' ' -f2- > output.txt