Простой скрипт Python
#!/usr/bin/env python
from __future__ import print_function
import sys
with open(sys.argv[1]) as f:
for line in f:
tokens=line.strip().split('_')
print(",".join(tokens[0:3]),'_',tokens[3],sep='')
Основная идея заключается в том, что мы читаем файл построчно, разбиваем его на части по разделителю _
и соединяем первые 3 элемента с _
в строку, используя нотацию среза [0:3]
. Если вам нужно сохранить этот вывод в виде файла, используйте оператор оболочки >
и отправьте вывод в файл.
Испытание:
$./edit_lines.py input.txt
ADB,AR,2006_07.pdf
ADBL,AR,2010_11.pdf
CBL,AR,2013_14.pdf
CZBIL,AR,2007_08.pdf
BOKL,AR,2015_16.pdf
Вы не можете сделать это из коробки, но это может быть возможно, если повезет и приложите усилия.
Дело в том, что на данный момент (в btrfs -progs 5.7 )нет способа передать настраиваемое минимальное/максимальное количество полос в mkfs.btrfs
. Онлайн-калькулятор пространства также содержит примечание на этот счет в разделе Предустановленные уровни RAID :
Note that these are the only parameter settings supported by btrfs at present.
Я пробовал различные комбинации mkfs.btrfs
с двумя дисками, btrfs device add
с третьим диском иbtrfs balance
(с использованием LV 8+4+4 ГиБ в качестве «дисков» ). К сожалению, хотя мне часто удавалось хранить более 12 ГиБ данных на ФС, я никогда не приближался к желаемым 16 ГиБ. Согласно btrfs device usage
, я всегда получаю некоторое сочетание фрагментов, чередующихся на 2 и 3 дисках.
Тем не менее, может быть возможно использовать пользовательский счетчик полос в mkfs.btrfs
путем изменения кода. Макет чанка настраивается в btrfs_alloc_chunk()
в volume.c
в программах btrfs -. Эта функция вызывает init_alloc_chunk_ctl()
для преобразования предустановки RAID в количество полос. min_stripes
устанавливается равным 2 для RAID0, а num_stripes
(, который представляет собой количество полос, фактически используемых для создания фрагмента, )устанавливается равным min(ctl->max_stripes, ctl->total_devs)
. Здесь max_stripes
является зависимым пределом -типа -блока, установленным в btrfs_alloc_chunk()
.
Таким образом, вы можете модифицировать эту подпрограмму, зафиксировав num_stripes
до нужного значения (2 )и использовать такое модифицированное mkfs.btrfs
для создания файловой системы, которая ведет себя так, как вы хотите. У меня нет времени тщательно проверять эту гипотезу, поэтому есть некоторый шанс, что вы столкнетесь с ошибками в ядре или программах btrfs -, но ИМХО у нее есть все шансы сработать. В конце концов, разметка диска -, которую вы ищете, все еще часто возникает, когда вы используете немодифицированные инструменты и добавляете/удаляете устройства (, как в моих тестах выше ), поэтому в принципе она должна поддерживаться. Но я не слишком удивлюсь, если более поздние device add
/balance
снова испортят раскладку.