replace

replace меняет текст внутри файлов, но не их имена. Без флага -w он лишь показывает, какие файлы затронет замена и сколько совпадений нашлось. Укажите файл для точечной правки или папку с -r, если нужны вложенные каталоги.

РазработкаВерсия 1.1.5Стабильная
lil-terminal

Обзор

-e txt,php выбирает расширения, а -g "*.php" — маску имени. -i игнорирует регистр обычного текста. Флаг -p принимает полное PHP-регулярное выражение с разделителями, например ~draft~. С -a обрабатываются также папки зависимостей и кеша.

Сначала увидеть область замены

Добавьте -w -b, чтобы перед записью создать .bak, затем .bak-001 и следующие копии. Старые бэкапы не перезаписываются и при рекурсивном поиске пропускаются. Бинарные файлы и файлы больше 4 МиБ не обрабатываются; за запуск просматривается не более 5000 файлов.

Синтаксис

lil-terminal
replace <old> <new> [path] [options]

Справочник

replace <old> <new>

показать замены в файлах текущего каталога

replace <old> <new> <file>

показать замены в одном файле

replace <old> <new> <dir> -r

показать замены рекурсивно внутри каталога

-w

атомарно записать запланированные изменения

-i

искать обычный текст без учёта регистра

-p

считать <old> полным PHP-регулярным выражением

-e <exts>

ограничить расширения, например php,js,css или tar.gz

-g <glob>

ограничить имена файлов glob-маской, например *.php

-b

создать .bak-копии перед записью

-a

включить vendor, node_modules, VCS и каталоги кэша

Сначала посмотреть, потом изменить

replace меняет текст внутри файлов, но не их имена. Без флага -w он лишь показывает, какие файлы затронет замена и сколько совпадений нашлось. Укажите файл для точечной правки или папку с -r, если нужны вложенные каталоги.

Как ограничить область

-e txt,php выбирает расширения, а -g "*.php" — маску имени. -i игнорирует регистр обычного текста. Флаг -p принимает полное PHP-регулярное выражение с разделителями, например ~draft~. С -a обрабатываются также папки зависимостей и кеша.

Резервные копии и безопасность

Добавьте -w -b, чтобы перед записью создать .bak, затем .bak-001 и следующие копии. Старые бэкапы не перезаписываются и при рекурсивном поиске пропускаются. Бинарные файлы и файлы больше 4 МиБ не обрабатываются; за запуск просматривается не более 5000 файлов.

Интерактивный пример из `/sandbox/`

Запускайте подготовленные примеры прямо на странице. Результат заранее сформирован и показывается в браузере; команды терминала на сервере не выполняются.

Посмотреть план замены

Установка и управление

Устанавливайте актуальную совместимую версию. Для полного набора возможностей выбирайте Base, для сокращённого — Minimum; уже установленный модуль обновляет команда upgrade.

Base и Minimum — два пакета одного текущего релиза модуля, а не разные версии команды.

Пакет Base

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

install replace
Пакет Minimum

Установить сокращённый пакет без локальной справки; help <cmd> -i открывает актуальную серверную справку.

install replace -m
Точная публичная версия

Установить именно эту опубликованную версию.

install replace -v 1.1.5
Проверить или обновить

Поручить upgrade проверить совместимость и заменить установленный блок только при необходимости.

upgrade replace
Удалить модуль

Удалить блок расширения, не затрагивая ядро и остальные модули.

install replace -u

Примеры

Примеры можно копировать, но сайт их не выполняет. Перед запуском на реальном проекте проверьте пути, права и разрушающие флаги.

Посмотреть план замены
cd \sandbox | replace draft published workspace/replace.txt
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Записать проверенное изменение
replace draft published \sandbox\workspace\replace.txt -w
Replaced                   2 occurrences in 1 file
workspace/replace.txt      2

Искать без учёта регистра
replace DRAFT published \sandbox\workspace\replace.txt -i
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Использовать регулярное выражение
replace "~draft~" published \sandbox\workspace\replace.txt -p
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Отобрать файлы по расширению
replace draft published \sandbox\workspace -r -e txt
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Отобрать файлы по маске
replace draft published \sandbox\workspace -r -g "*.txt"
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Записать с резервной копией
replace draft published \sandbox\workspace\replace.txt -w -b
Replaced                   2 occurrences in 1 file
workspace/replace.txt      2

Backups                    1
workspace/replace.txt.bak
Включить папки зависимостей
replace draft published \sandbox\workspace -r -a -e txt
Preview                3 replacements in 2 files
workspace/replace.txt  2
workspace/vendor/review.txt  1

Write                  use -w to apply changes
Просмотреть изменения в папке
replace draft published \sandbox\workspace
Preview                2 replacements in 1 file
workspace/replace.txt  2

Write                  use -w to apply changes
Проверить отсутствующий путь
replace draft published \sandbox\missing.txt
Путь не найден
Отклонить неверное выражение
replace draft published \sandbox\workspace\replace.txt -p
Invalid regular expression
Сохранить вторую резервную копию
replace draft published \sandbox\workspace\replace.txt -w -b | replace published final \sandbox\workspace\replace.txt -w -b
Replaced                   2 occurrences in 1 file
workspace/replace.txt      2

Backups                    1
workspace/replace.txt.bak

Replaced                   2 occurrences in 1 file
workspace/replace.txt      2

Backups                    1
workspace/replace.txt.bak-001

Файл из примера: sandbox/workspace/replace.txt

Пример использует файл или каталог из защищённой учебной папки /sandbox/.

status=draft
owner=lil
status=draft

Связанная документация

Текущая публичная версия

v1.1.52026-10-31

Нумерованные резервные копии

Автоматический обход каталогов пропускает резервные копии (.bak, .bak-001 и далее); по явно указанному пути их можно открыть.