【Linux】指定ディレクトリ以下のファイルの内容を一括置換する方法
簡単なウェブサイトを Perl 作っていて、開発環境が Windows で、公開する環境が Linux のサーバのため、CGIファイルの1行目の Perl のパスが異なります。
Windows では、
1 |
#!C:\Perl\bin\perl |
Linux では、
1 |
#!/usr/bin/perl |
のようになります。
毎回CGIをアップロードするたびに、手修正するのはめんどくさいので、Linux のコマンドで一括置換する方法を調べました。
複数のコマンドをパイプでつないで実行すると一括置換することができました。
1 |
find ./ -type f -print | xargs grep -l '置換前の文字列' | xargs sed -i.bak -e 's/置換後の文字列/g' |
今回は、Windows 環境から Linux 環境にアップロードして公開するので、具体的には以下のようなコマンドになります。
1 |
find ./ -type f -print | xargs grep -l 'C:\\Perl\\bin\\perl' | xargs sed -i.bak -e 's/C:\\Perl\\bin\\perl/\/usr\/bin\/perl/g' |
実行すると、カレントディレクトリにあるファイルについて、.bak というファイル名でバックアップを取ったのち、一括置換を行ってくれます。
関連記事
-
-
【WSL】Windows10 に Linux(Ubuntu) を入れてみた。
最新の Windows10 環境であれば、簡単に Linux 環境を構築できるということで、試してみ
-
-
【Raspberry Pi】Webサーバ apache を入れてみた【Linux】
ラズベリーパイで SSH を起動させ、Windows から SSH でアクセスできるように設定しまし
-
-
【Linux】cp コマンドでディレクトリごとコピーし、ファイルの上書き確認されないようにする方法
Linux で cp コマンドを使って、ディレクトリごとコピーし、同一ファイル名があった場合に上書き
-
-
【Linux】 ファイルの重複した行を削除して、ファイルを結合する方法。
大容量の CSV ファイルの重複した行を削除して、ファイルを結合する処理を行ったときのメモです。
-
-
【Linux】SSH でリモートからログインする方法。
SSH(Secure Shell)は、暗号化され、安全にリモートホストにログインするためのプロトコル
-
-
【Linux】文字化け対策に unar のインストールを試みた。
Windows で圧縮したファイルを Linux で解凍すると、文字化けが起こってしまいます。文字化
-
-
【Linux】ファイルの文字コードを一括変換する方法|EUC-JP ⇒ UTF-8
Linux で、あるディレクトリ内のファイルの文字コードを EUC-JP から UTF-8 に一括変
-
-
【Linux】SSH を切断した後でも Python を実行し続ける方法|nohub
今回、Linux のサーバに Windows から TeraTerm で SSH 接続し、Pytho
-
-
大量のテキストファイルを圧縮して Windows から Linux へコピーして解凍してみた。
大量のテキストファイルを Windows から Linux にコピーする必要があり、最初はそのまま
-
-
【Linux】ファイルの文字コードを調べる方法
Linux でファイルの文字コードを調べる必要があったので、その時のメモです。 いくつか方法が