按列长度排序

问题描述 投票:0回答:1

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

示例数据(所有数据都已组成,而非实际数据)。

5032:Stack:[email protected]:123:JamesPeterson
3200:Admin:[email protected]:12ej3dij23i2j32:AdminAdmin
1024:GregoryJames:[email protected]:12329232:GregJames

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

3200:Admin:[email protected]:12ej3dij23i2j32:AdminAdmin
1024:GregoryJames:[email protected]:12329232:GregJames
5032:Stack:[email protected]:123:JamesPeterson
sorting unix cygwin
1个回答
0
投票

使用awk添加包含列长度的列,按其排序,然后将其删除。

awk -F: '{printf("%d %s\n", length($4), $0)}' input.txt | sort -nr | cut -d' ' -f2- > output.txt
© www.soinside.com 2019 - 2024. All rights reserved.