Sorting and removing duplicate words in a line

前端 未结 7 1061
陌清茗
陌清茗 2020-12-03 06:50

The sort command lets me put lines in alphabetical order and remove duplicate lines. I need something similar that can sort the words on a single line, put them

相关标签:
7条回答
  • 2020-12-03 07:30

    All of the answers prior to this one can only sort a single line at time. The following can be used to pipe a whole list of such lines into and it will print the sorted list of unique words for each line.

    awk '{ delete a; for (i=1; i<=NF; i++) a[$i]++; n=asorti(a, b); for (i=1; i<=n; i++) printf b[i]" "; print "" }'
    

    Thanks @jaypai for a lot of the syntax used in this.

    Example:

    >cat file
    group label wearable edit_group edit_group_order label_max camera_elevation camera_distance name label_min label_max value_min value_max camera_angle camera_elevation id
    id group label wearable edit_group clothing_morph value_min value_max name value_default clothing_morph group
    id label show_simple wearable name edit_group edit_group_order group clothing_morph clothing_morph camera_distance label_min label_max value_min value_max camera_distance camera_angle
    id group label wearable name edit_group clothing_morph value_min value_max value_default
    group label wearable id clothing_morph edit_group edit_group_order label_min label_max value_min value_max name camera_distance camera_angle camera_elevation
    id group label wearable edit_group name label_min label_max value_min value_max wearable
    name id group wearable edit_group id group wearable id group wearable id group wearable value_min value_max
    
    >cat file | awk '{ delete a; for (i=1; i<=NF; i++) a[$i]++; n=asorti(a, b); for (i=1; i<=n; i++) printf b[i]" "; print "" }'
    camera_angle camera_distance camera_elevation edit_group edit_group_order group id label label_max label_min name value_max value_min wearable 
    clothing_morph edit_group group id label name value_default value_max value_min wearable 
    camera_angle camera_distance clothing_morph edit_group edit_group_order group id label label_max label_min name show_simple value_max value_min wearable 
    clothing_morph edit_group group id label name value_default value_max value_min wearable 
    camera_angle camera_distance camera_elevation clothing_morph edit_group edit_group_order group id label label_max label_min name value_max value_min wearable 
    edit_group group id label label_max label_min name value_max value_min wearable 
    edit_group group id name value_max value_min wearable
    
    0 讨论(0)
提交回复
热议问题