按第 N 列中的字长排序

719*_*016 4 bash gnu sorting

我有一个这样的列文件:

1 1 1 AKSDFJADFKASDJFAK
2 1 1 ADKLCJASDLKCJDLACKADCJLKDACJADS
3 1 2 AKLJDFHALKDJFHLKJSDKSDFHAKJFDHAKFHJAKFJ
Run Code Online (Sandbox Code Playgroud)

我想按第四列对条目进行排序,最长的单词在前。有什么建议?

小智 7

尝试这个:

awk '{print $0" "length($4)}' infile | sort -k5,5rn | sed -e 's/ [0-9]*$//' > outfile
Run Code Online (Sandbox Code Playgroud)