Я хочу отсортировать файл по первому файлу, но последний символ является наиболее важным.

Например, файл формы:

"AAAACTTTTT"                    1       2

"AAAACAAAAA"    1       2       6       4

Для того, чтобы:

"AAAACAAAAA"    1       2       6       4

"AAAACTTTTT"                    1       2

Я старался:

sort -k1,1 file

Конечно, это не работает, но я понятия не имею, как я могу это сделать. Не могли бы вы помочь мне? Может, какие-нибудь секретные флаги?

2 ответа2

0

Если файл не слишком большой, вы можете сделать это с помощью 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];
    }
}
0

Я хотел отсортировать (сгруппировать) список адресов электронной почты по их доменным именам, например, все «@ xxx.com», затем все «@ yyy.com» (решение, основанное на комментарии makgun)

rev emailist | sort | rev > emailistsorted

просто получить уникальные

rev emailist | sort -u | rev > emailistsorted

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .