sedでコマンドを使用する

sedでコマンドを使用する

myfile.txtこのコマンドの目的は、ファイル内のすべてのIPをサーバーのローカルIPに自動的に置き換えることです。

例:

sed -i -e 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/LOCALIP/g' myfile.txt

次のコマンドを使用して、sedからローカルIPアドレスを取得できるかどうかを知りたいです。

LOCALIP基本的に私の例をこのコマンドに置き換えたいと思います。

/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1 

ベストアンサー1

二重引用符内にコマンド置換を使用できます。

sed -i -e 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/'"$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)/g" myfile.txt

一重引用符では機能しないため、一重引用符を最初に終了し、LOCALIPコマンドに二重引用符を使用します。これにより、検索モードで誤って拡張されることはありません。

おすすめ記事