replace

replace は選択したファイル内のテキスト/正規表現置換を最初にプレビューし、-w がなければ書き込みません。パス、拡張子、glob で対象を絞れます。

開発バージョン 1.1.4安定版
lil-terminal

概要

同じ文字列変更を複数ファイルへ反映するときは、最初の実行をプレビューのままにします。対象ファイルと一致件数を確認してから、同じコマンドを -w 付きで実行します。

書き込む前に対象範囲を確認

たとえば replace debug false config -r -e ini はファイルと件数を表示するだけです。対象が正しいことを確認して -w を追加し、一括変更前に .bak が必要なら -b も追加します。

構文

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

リファレンス

replace <old> <new>

現在のディレクトリのファイルで置換をプレビューする

replace <old> <new> <file>

1ファイルで置換をプレビューする

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

ディレクトリ内を再帰的にプレビューする

-w

予定した変更を原子的に書き込む

-i

プレーンテキストを大文字小文字を区別せず照合する

-p

<old> を完全な PHP 正規表現として扱う

-e <exts>

php,js,css や tar.gz のように拡張子を制限する

-g <glob>

*.php のような glob でファイル名を制限する

-b

書き込み前に .bak を作成する

-a

vendor、node_modules、VCS、キャッシュを含める

対象範囲の選択

パス省略時は現在のディレクトリです。サブディレクトリは -r のときだけ走査します。-e <exts> は拡張子、-g <glob> は名前を絞ります。依存関係、VCS、キャッシュは -a なしでは除外され、シンボリックリンクは常に処理しません。

プレビューと書き込み

既定はプレビューで、ファイルごとの一致数を表示します。確認後に -w を付けて繰り返すと書き込みます。-b は先に .bak を作成し、既に存在する場合は停止します。-i はプレーンテキスト、-p は区切り文字を含む完全な PHP 正規表現用です。

制限と安全性

1回で最大 5000 ファイルを調べ、4 MiB 超とバイナリは除外します。レポートに列挙する変更対象は最大 500 ファイルです。書き込みは一時ファイルと rename を使います。

インタラクティブな sandbox プレビュー

用意された例をページ上でそのまま実行できます。結果は事前に生成されてブラウザに表示され、サーバーではターミナルコマンドを実行しません。

1ファイルで置換をプレビューする

インストールと管理

現在の互換バージョンをインストールします。全機能は 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

例はコピーできますが、サイトは実行しません。実プロジェクトではパス、権限、破壊的オプションを確認してください。

1ファイルで置換をプレビューする
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
*.php のような glob でファイル名を制限する
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> で曖昧さをなくしました。