よくわからないエンジニア

よく分からないエンジニアの日々の記録

よくわからないエンジニア

CentOS7 ファイル名/ファイル内文字列の置換

いつも忘れるので、備忘録です。

目次

動機

サーバ増やしたい時に、VMでクローンするとクローン元のIPアドレスだったりホスト名がコンフィグやファイル名として残っていますよね。残っていますね。
それらを手動で変更するのが面倒なので、コマンドで変更するのですが、毎度忘れてしまうので残しておきます。

ファイル名の置換

条件としてはこんな感じ。

クローン元アドレス: 192.168.12.1
クローン後アドレス: 192.168.13.5

ファイル構成:
# ls
192.168.12.1.conf  192.168.12.1.txt

ファイルの中身
# grep "192.168.12.1" ./*192.168.12.1*

./192.168.12.1.conf:IP=192.168.12.1
./192.168.12.1.txt:ADDR=192.168.12.1

まずはファイル名のアドレスを置換します。

基本renameコマンドでやってしまいます。

$ rename  '192.168.12.1' '192.168.13.5' ./*192.168.12.1*
$ ls
192.168.13.5.conf 192.168.13.5.txt 

ファイル内文字列の置換

次にファイル内の文字列を置換します。sed で上書きするときは、念の為-iオプションの後ろにbakとかつけて、変更前を残しておいたほうが良いかもしれないですね。diffで確認できるし。

$ grep -l '192.168.12.1' ./*192.168.12.1* | xargs sed -i.bak -e 's/192.168.12.1/192.168.13.5/g' 

$ diff -u 192.168.12.1.conf.bak 192.168.12.1.conf
--- 192.168.12.1.conf.bak       2019-02-08 15:19:44.616028527 +0900
+++ 192.168.12.1.conf   2019-02-08 15:20:16.508695136 +0900
@@ -1 +1 @@
-IP=192.168.12.1
+IP=192.168.13.5

$ diff -u 192.168.12.1.txt.bak 192.168.12.1.txt
--- 192.168.12.1.txt.bak        2019-02-08 15:19:44.616028527 +0900
+++ 192.168.12.1.txt    2019-02-08 15:20:16.508695136 +0900
@@ -1 +1 @@
-ADDR=192.168.12.1
+ADDR=192.168.13.5

以上!!