.txt ファイルの IP をホストに置き換えます。

.txt ファイルの IP をホストに置き換えます。

というサブフォルダに約14,800個のファイルが散在しています/actlogs/。このファイルの最初の行には、次のリンクが含まれています。

http://server.com/file.pdf

「server.com」文字列を「server.com」の実際のIPアドレスに置き換える必要があります。

/actlogs/ とサブフォルダで *.log を探し、各ファイルのホストをその IP に置き換える方法はありますか?

Ubuntu Server 18.04を使用しています。

ベストアンサー1

これは仕事のように聞こえますsed

sed 's/server\.com/192.168.0.1/' *.log

sed入力を 1 行ずつ処理するストリームエディタです。ここではs代替コマンドを使用していますs/regex/replacement/flags。これが必要なものであると確信している場合は、フラグを追加してi変更を「所定の位置に」適用することができます。*シェルでglobを実行し、.logsedで終わるすべてのファイルをsedへの入力として渡します。

sed 's/server\.com/192.168.0.1/' *.log

これは、各行に最初に表示されるパターンのみを置き換えることに注意してください。発生場所に関係なくすべての項目を置き換えるには、グローバルフラグを使用できます。

sed 's/server\.com/192.168.0.1/g' *.log

検索する必要があるディレクトリ階層の場合は、結果を使用してfind実行できます。sed

find /home/www/ -type f -name '*.log' -exec \
    sed 's/server\.com/192.168.0.1/g' {} +

おすすめ記事