0

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");ホームディレクトリの下にあるすべてのファイルで、「google analytics code」を検索して置き換えたいと考えています。

php eclips エディターでは、すべての発生が表示されますが、一度にすべてを置き換えることはできません。そこで、シェルスクリプトを使おうと考えています。

/home/project/news4u/web は私の腐ったディレクトリであり、sedそれを達成するためのコマンドの使用方法です。

私は試したsed s/'var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");'/'google analytics' *

4

1 に答える 1

1

GNU sed を使用している-i場合、ファイルをその場で編集できるオプションがあります。また、bashglobstar を有効にする必要がある場合:

shopt -s globstar

sedディレクトリツリー自体をウォークスルーできるため

sed -i.bak "s@'var gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : "http://www.");'@'google analytics'@" **

-i.bak拡張子を付けて各ファイルをバックアップします.bak。何か問題が発生した場合に役立ちます。

すべてが正常に機能する場合は、最初に特定のファイルのオプションを指定せずに「ドライ」実行で確認し、-iその後でのみ実行することをお勧めします-i

ps。GNU sed または bash またはその両方を持っていない場合は、より複雑にできますが、POSIX 互換の方法:

find . -type f -exec sed "s@'var gaJsHost = ((\"https:\" == document.location.protocol) ? \"https://ssl.\" : "http://www.");'@'google analytics'@" {} > {}.tmp \; -exec mv {}.tmp {} \;
于 2012-07-06T10:04:24.157 に答える