редактирование файлов партиями из огромного объема данных

Вопрос или проблема

Я столкнулся с проблемой:
У меня есть папки с обычно 50-150 текстовыми файлами, которые нужно изменить.
SED не вариант, так как изменения не могут быть автоматизированы (иногда нужно изменить “ss”, иногда нет) Большинство необходимых изменений уже были сделаны с помощью SED. Я МОГУ использовать vi * в папке и пройтись по каждому файлу, а затем сохранить или открыть каждый отдельно, но это будет сильно утомлять мозг.

Я хотел бы открыть 5 файлов подряд, и когда они будут завершены, в следующий раз, когда у меня будет свободный мозг, открыть следующие 5 файлов и так далее.
Есть какие-нибудь разумные идеи? К сожалению, соглашение об именовании файлов не предлагает “умных” частей для изменения.

Если использовать zsh и vim.

Первый раз:

files=( *(.) ); typeset -p files > .todo

В следующий раз:

source ./.todo

Затем редактируйте по 5 за раз с помощью:

vim -- $files[1,5]

Внутри vim: :argdo %s/ss/something-else/gc для глобальной замены с запросом для каждой замены.

Когда закончите с этими пятью:

files[1,5]=(); typeset -p files > .todo

Чтобы обновить список файлов для переименования.

Кроме того, переместите обработанные файлы в директорию done (по-прежнему с zsh):

mkdir -p done
vim -- *(.[1,5])
mv -- *(.[1,5]) done/

Или с анонимной функцией, чтобы передать эти первые 5 обычных файлов как в vim, так и в mv: () { vim $@ && mv $@ done; } ./*(.[1,5])

Ответ или решение

Обработка текстовых файлов в пакетном режиме с использованием Zsh и Vim

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

Проблема

Вы имеете каталоги с 50-150 текстовыми файлами, которые нужно модифицировать, причем изменения не могут быть полностью автоматизированы. Использование vi * для поочередного редактирования файлов является утомительным. Вы хотите открывать по 5 файлов за раз, чтобы работать с ними в удобном ритме и избегать переутомления.

Решение

Используя оболочку Zsh и Vim, мы можем организовать эффективный процесс редактирования. Вот пошаговая инструкция:

Шаг 1: Сохранение списка файлов

Сначала создайте массив, который будет содержать все текстовые файлы в текущем каталоге, и сохраните этот массив в файл для дальнейшего использования:

files=( *(.) ); typeset -p files > .todo

Эта команда создаст массив files, который будет хранить все файлы в текущем каталоге. Далее команда typeset сохранит массив в файл .todo, чтобы его можно было использовать позже.

Шаг 2: Загрузка массива файлов

Когда вы захотите продолжить редактирование, загрузите массив файлов из сохраненного файла:

source ./.todo

Шаг 3: Редактирование файлов

Теперь вы можете редактировать первые 5 файлов из массива с помощью Vim:

vim -- $files[1,5]

Внутри Vim вы можете использовать команду:

:argdo %s/ss/something-else/gc

Эта команда заменит все вхождения "ss" на "something-else" с запросом подтверждения для каждой замены. Это позволяет вам контролировать изменения и указывать, где они должны происходить.

Шаг 4: Обновление массива

После завершения редактирования файлов обновите массив, удалив уже обработанные файлы:

files[1,5]=(); typeset -p files > .todo

Альтернативный подход: Перемещение обработанных файлов

Если вы предпочитаете перемещать обработанные файлы в отдельный каталог для упорядочивания, выполните следующие команды:

mkdir -p done
vim -- *(.[1,5])
mv -- *(.[1,5]) done/

Создание каталога done помогает вам хранить файлы, которые были обработаны. Таким образом, вы поддерживаете порядок и сохраняете историю редактирования.

Заключение

Используя описанные методы, вы сможете эффективно обрабатывать и редактировать текстовые файлы в пакетном режиме, что позволит избежать утомления и улучшить производительность. Этот подход позволяет адаптироваться к вашему стилю работы и обеспечивает контроль над процессом редактирования, несмотря на уникальность изменений, которые необходимо внести.

Оцените материал
Добавить комментарий

Капча загружается...