该sort命令允许我按字母顺序放置行并删除重复的行.我需要类似的东西,可以在单行上排序,按顺序排列,并删除任何重复.有这个命令吗?
例如:
zebra ant spider spider ant zebra ant
Run Code Online (Sandbox Code Playgroud)
变更为:
ant spider zebra
Run Code Online (Sandbox Code Playgroud)
在第一个单词之前或最后一个单词之后没有空格.
jco*_*ado 68
这对我有用:
$ echo "zebra ant spider spider ant zebra ant" | xargs -n1 | sort -u | xargs
ant spider zebra
Run Code Online (Sandbox Code Playgroud)
您可以将单个行中的单词列表转换为单个列xargs -n1,sort -u并使用,转换回单个行xargs.
小智 29
shell的构建是为了解析[:blank:]分隔的单词列表.因此,使用xargs完全是多余的."独特"的东西可以完成,但它更容易使用排序.
echo $(printf '%s\n' zebra ant spider spider ant zebra ant | sort -u)
使用tr改变空格的新线,然后sort,最后更换新线回位.
echo $(tr ' ' '\n' <<< "zebra ant spider spider ant zebra ant" | sort -u)
Run Code Online (Sandbox Code Playgroud)
在此之前的所有答案一次只能对一行进行排序。以下内容可用于将这些行的整个列表通过管道传输到其中,它将打印每行的唯一单词的排序列表。
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 "" }'
Run Code Online (Sandbox Code Playgroud)
感谢 @jaypai 在这里使用了很多语法。
例子:
>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
Run Code Online (Sandbox Code Playgroud)