質問: テキストをhtmlファイルのアンカータグ内のリンクに置き換えたいのですが。課題は、プロジェクトにそのようなHTMLファイルが何百も含まれており、それらすべてのファイルのテキストを手動で置き換えることは賢明な方法ではないということです。だから問題は、Linuxで単一のコマンドを使用して同じことをどのように行うことができるかということです。
解決策:
sedの使用 Linuxのコマンド:
sed -i 's/#\(.*logo\)/domain.ca\1/' $file
上記のコマンドは、パターン logoを含む行を検索します 「#」をリンク(例:domain.ca)に置き換えます
以下に示すように、上記のコマンドに複数のファイルを渡すこともできます。
上記のコマンドの別のバリエーションは次のとおりです。
sed -i '/logo.png/ s/#/domain.ca/' *.html
perlの使用 コマンド:
perl -i -pe 's/#/domain.ca/ if /logo.png/' about-us.html
コマンドは非常に簡単です。ファイルのその行に一致する文字列が見つかった場合にのみ、テキストを検索して特定の文字列に置き換えます。
上記のコマンドはすべて同じ役割を果たしますが、正規表現の入力方法が異なるだけです。
exでVimを使用する モード(複数のファイルでは使用できません):
ex -sc '/logo/s/#/http:\/\/domain.ca\//|x' about-us.html
上記のコマンドでは、正規表現‘ /logo/s/#/http:\/\/domain.ca\// | x ‘は‘ s’と‘ x’で構成されます。ここで、‘s’は置換を表し、‘x’はファイルを保存して閉じるためのものです。
注:上記のコマンドは vimを使用します 、複数のファイルを渡すことはできません。置き換えるファイルごとに、このコマンドを手動で実行する必要があります。
M2Crypto SSLチェックエラー:ピア証明書subjectAltNameが[解決済み]と一致しません
致命的なエラーopenssl/evp.h:そのようなファイルまたはディレクトリはありません:[解決済み]