[解決済み] スラッシュを含む文字列をsedで挿入するには?重複
2022-04-22 04:02:25
質問
私はローカルで開発された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.txt
sedコマンドを実行した後。
pageone
pagetwo
pagethree
欲しいもの
b.txt
を含むようにします。
/page/one
/page/two
/page/three
解決方法は?
最も簡単な方法は、検索/置換の行で別のデリミタを使用することです、例えば、。
s:?page=one&:pageone:g
どちらの文字列にも属さない任意の文字をデリミタとして使用することができます。あるいは、バックスラッシュでエスケープすることもできます。
s/\//foo/
を置き換えることができます。
/
を
foo
. 置換文字列にどんな文字が含まれるかわからない場合(シェル変数の場合など)には、エスケープされたバックスラッシュを使いたいところです。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン