175

ローカルで開発された Visual Studio プロジェクトがあります。コード ファイルは、リモート サーバーに展開する必要があります。唯一の問題は、含まれている URL がハードコードされていることです。

プロジェクトには、 などの URL が含まれてい?page=oneます。リンクがサーバー上で有効であるためには、/page/one.

コード ファイル内のすべての URL を展開前に sed に置き換えることにしましたが、スラッシュで行き詰っています。

これはきれいな解決策ではないことはわかっていますが、簡単で時間を大幅に節約できます。置換する必要がある文字列の総数は 10 未満です。チェックする必要があるファイルの総数は ~30 です。

私の状況を説明する例は次のとおりです。

私が使用しているコマンド:

sed -f replace.txt < a.txt > b.txt

replace.txtすべての文字列が含まれています:

s/?page=one&/pageone/g
s/?page=two&/pagetwo/g
s/?page=three&/pagethree/g

a.txt:

?page=one&
?page=two&
?page=three&

b.txtsed コマンドを実行した後の内容:

pageone
pagetwo
pagethree

私が含めたいb.txtもの:

/page/one
/page/two
/page/three
4

11 に答える 11

1

replace.txtする必要があります

s/?page=/\/page\//g
s/&//g
于 2013-05-28T11:33:25.007 に答える
1

匿名さんからの素晴らしい回答。\ は、HTML 文字列で引用符をエスケープしようとしたときの問題を解決しました。

したがって、sed を使用して (サーバー上で) HTML テンプレートを返す場合は、バックスラッシュを 1 つではなく 2 つ使用します。

var htmlTemplate = "<div style=\\"color:green;\\"></div>";
于 2014-05-17T19:34:29.553 に答える