我希望有人能够阐明如何在unix中对一组grepped值进行排序。
例如,如果我有一个列表,如;
有没有办法使用通配符进行数字排序,即排序qp _ * _ v1;其中*将作为数字读取,然后根据此进行排序(忽略之前和之后的任何内容)。我目前发现的问题是gp_52_v2总是被读作字符串所以我必须剪切gp_和_v 只留下数字然后排序。
我希望这是有道理的......
提前致谢。
编辑:如果有人知道如何做的话会有一点好处..将是grep并列出具有最高版本的值,即如果gp_50存在3次,则后缀为_v1,_v2,_v3仅列出gp_50_v3。因此,此列表仍将包含具有各种版本的文件,但只有每个文件的最高版本将输出到终端。
答案 0 :(得分:1)
ls |切-d' _' -f 2 |排序
在你的情况下用你的grep命令替换ls
编辑:在我输出剪切前的示例中,如果你想要文件的原始名称,请使用:
ls |排序-k2,2g -t' _'
k 是要比较的字段数
g 是要比较的最大字符数
t 是分隔符