Btrfs: свободное пространство, не использованное после перехода с RAID1 на RAID6

msort (1) был разработан для сортировки файлов с многострочными записями.У него есть необязательный графический интерфейс, а также обычная версия командной строки, удобная для использования людьми. (По крайней мере, люди, которые любят внимательно читать руководства и искать примеры ...)

AFAICT, вы не можете использовать произвольный шаблон для записей, поэтому, если ваши записи не имеют фиксированного размера (в байтах, а не в символах или линий). msort имеет параметр -b для записей, которые представляют собой блоки строк, разделенных пустыми строками.

Вы можете легко преобразовать свой ввод в формат, который будет работать с -b , поставив пустую строку перед каждым ### ... (кроме первого ).

По умолчанию он выводит статистику на stderr, поэтому, по крайней мере, легко определить, когда он не сортируется, потому что он считал, что весь ввод был единственной записью.


msort работает с вашими данными. Команда sed добавляет новую строку к каждой строке # + , кроме строки 1. -w сортирует всю запись (лексикографически). Есть варианты выбора, какую часть записи использовать в качестве ключа, но они мне не понадобились.

Я также не стал убирать лишние символы новой строки.

$ sed '2,$ s/^#\+/\n&/' unsorted.records | msort -b -w 2>/dev/null 
####################################
KEY1
VAL11
VAL12
VAL13
VAL14

####################################
KEY2
VAL21
VAL22
VAL23
VAL24

####################################
KEY3
VAL31
VAL32
VAL33
VAL34

Мне не повезло с -r '#' , чтобы использовать это в качестве разделителя записей. Он думал, что весь файл был одной записью.

2
06.02.2016, 22:36
0 ответов

Теги

Похожие вопросы