bash 从字符串末尾排序

bash 从字符串末尾排序

我想按第一个文件对文件进行排序,但最后一个字符是最重要的。

例如表单文件:

"AAAACTTTTT"                    1       2

"AAAACAAAAA"    1       2       6       4

到:

"AAAACAAAAA"    1       2       6       4

"AAAACTTTTT"                    1       2

我试过:

sort -k1,1 file

当然,这行不通,但我不知道该怎么做。你能帮我吗?也许一些秘密标志?

答案1

我想按域名对电子邮件地址列表进行排序(分组),例如所有“@xxx.com”,然后是所有“@yyy.com”(基于 makgun 的评论的解决方案)

rev emailist | sort | rev > emailistsorted

只获取唯一值

rev emailist | sort -u | rev > emailistsorted

答案2

如果文件不是太大,你可以使用 GNU 来执行此操作awk

{
    count = split($1, arr, "");
    key = ""
    for (i = 1; i <= count; i++) {
        key = arr[i] key;
    }
    lines[key] = $0;
}
END {
    count = asort(lines);
    for (i = 1; i <= count; i++) {
        print lines[i];
    }
}

相关内容