Сортировка по имени?

Я пытаюсь сортировать следующий файл

http://pastebin.com/EqA2SUMy .

Но часть, которую я пытаюсь сортировать, – это поле 11, и только если первое поле является атомом. Вот пример

ATOM 33 CG ASP A 438 8.283 24.407 131.412 1.00 17.18 C ATOM 34 OD1 ASP A 438 9.153 23.597 131.783 1.00 17.73 O ATOM 35 OD2 ASP A 438 7.530 25.009 132.208 1.00 18.39 O ATOM 36 N PHE A 439 5.102 23.813 128.903 1.00 12.35 N ATOM 37 CA PHE A 439 3.680 23.598 129.138 1.00 12.15 C 

Я знаю, как сортировать файл на основе полей. Например, для моего файла это будет

  sort -k11 <\file path > 

sort, основанный на одиннадцатом поле, но как его сортировать, только если первое поле является атомом b / c, есть поля, которые идут до 11 и начинаются с HETATM и т. д.

  • Как отсортировать текстовый файл по столбцу, начиная с определенной позиции символа?
  • сортировать файл, но держать пары линий вместе
  • Сортировка на основе последнего появления символа
  • Сортировка строк на основе номера переменной ширины в фиксированном положении
  • Как сортировать большие файлы?
  • Можно сортировать сортировку 1 2 3 4..9 вместо 1 10 11 12 .. 2 20
  • Сортировка по последнему символу ввода, затем по предыдущему номеру?
  • команда сортировки не работает в этом файле
  • 2 Solutions collect form web for “Сортировка по имени?”

    Это должно работать, если я правильно понял, вам нужны только строки, начинающиеся с ATOM .

     sort -k11 <(awk '$1 ~ /ATOM/' file) 

    Объяснение:

    • sort -k11 : сортировать по 11- sort -k11 полю
    • awk '$1 ~ /ATOM/' file : только печатает поля startig с ATOM
    • Часть awk представляет собой вход для части sort

    Как бы вы хотели, чтобы конечный результат выглядел? Должны ли все строки с первым полем ATOM появляться в верхней части файла, конец файла?

    Если это нормально, если ATOM в любом месте списка, то возможным способом является сортировка их в другом файле и добавление к началу или нижней части исходного файла или к определенному столбцу. Я уверен, что кто-то еще опубликует более простое решение – только мои два цента на данный момент ..

     grep -v ^ATOM file > result; sort -k11 < grep ^ATOM file >> result 
    Interesting Posts
    Linux и Unix - лучшая ОС в мире.