replace

replace сначала показывает план замены текста или регулярного выражения в выбранных файлах и ничего не записывает без -w. Область можно ограничить путём, расширением или glob-маской.

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

Обзор

Эта команда полезна, когда одну текстовую правку нужно внести сразу в несколько мест. Первый запуск оставляйте предпросмотром: сузьте набор файлов, проверьте количество совпадений и только затем повторите команду с -w.

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

Начните, например, с replace debug false config -r -e ini: команда лишь покажет найденные файлы и число замен. Добавляйте -w, когда список верен, а -b — если перед массовой записью нужны .bak-копии.

Синтаксис

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 и каталоги кэша

Выбор области

Без пути используется текущий каталог. Каталог просматривается только на верхнем уровне, пока не добавлен -r. -e <exts> ограничивает расширения, -g <glob> — имена файлов. Каталоги зависимостей, VCS и кэша пропускаются без -a; символические ссылки не обрабатываются никогда.

Предпросмотр и запись

По умолчанию команда только показывает число замен по файлам. Повторите её с -w, чтобы записать изменения. -b сначала создаёт .bak и останавливает операцию, если такая копия уже существует. -i относится к обычному тексту; -p ожидает полное PHP-регулярное выражение вместе с разделителями.

Ограничения и безопасность

За один запуск просматривается не более 5000 файлов; файлы больше 4 МиБ и бинарные файлы пропускаются. В отчёте перечисляется не более 500 изменяемых файлов. Запись идёт через временный файл и rename, поэтому успешная замена не оставляет частично записанную цель.

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

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

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

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

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

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

Пакет Base

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

install replace
Пакет Minimum

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

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

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

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

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

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

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

install replace -u

Примеры

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

Показать замены в одном файле
cd \sandbox | replace beta "beta reviewed" workspace/original.txt
Preview      workspace/original.txt
Files        1
Matches      1
Would write  1
Атомарно записать запланированные изменения
replace alpha omega workspace/original.txt -w
Write     workspace/original.txt
Files     1
Replaced  1
Искать обычный текст без учёта регистра
replace ALPHA omega workspace/original.txt -i
Preview      workspace/original.txt
Case         insensitive
Matches      1
Would write  1
Считать <old> полным PHP-регулярным выражением
replace "~beta.*~" "beta" workspace/original.txt -p
Preview      workspace/original.txt
Mode         regex
Matches      1
Would write  1
Ограничить расширения, например php,js,css или tar.gz
replace debug false config -r -e ini
Preview      config
Extensions   ini
Files        1
Matches      1
Would write  1
Ограничить имена файлов glob-маской, например *.php
replace alpha omega workspace -r -g "*.txt"
Preview      workspace
Mask         *.txt
Files        3
Matches      2
Would write  2
Создать .bak-копии перед записью
replace debug false config -r -w -b
Write     config
Files     2
Replaced  2
Backups   2
Включить vendor, node_modules, VCS и каталоги кэша
replace vendor_name package_name . -r -a
Preview      .
Hidden       included
Matches      1
Would write  1
Обработать отсутствующий путь
replace absent present missing.txt
Файл не найден: missing.txt

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

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

status=draft
owner=lil
status=draft

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

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

v1.1.42026-08-13

Понятная замена текста

Справка прямо объясняет, что replace меняет текст внутри файлов; короткие <old>/<new> убирают двусмысленность.