GNU/Linux >> Linux の 問題 >  >> Linux

Sedのスラッシュとバックスラッシュ?

この質問にはすでに回答があります :shスクリプトでsedを使用する場合、どの文字をエスケープする必要がありますか?

(4つの回答)
5年前に閉鎖されました。

sedを使いたい スラッシュを円記号とスラッシュに変更します。つまり、/ -> / 。しかし、それは機能しません。ここに小さな例があります:

#!/bin/bash
TEST=/etc/hallo
echo $TEST
echo $TEST | sed "s/hallo/bello/g"
echo $TEST | sed "s///\//g"

最初の3行の出力は想定どおりです。しかし、最後のものは機能しません。なんで?最後の部分を修正するには?

承認された回答:

使用した式には一重引用符を使用してください:

sed 's///\//g'

二重引用符で囲んで、 特別な意味があるので、バックスラッシュする必要があります:

sed "s///\\//g"

ただし、区切り文字を変更する方がクリーンです:

sed 's=/=\/=g'
sed "s=/=\/=g"

Linux
  1. Linux Sedコマンド:使用法と例

  2. 文字列をSedのスラッシュを含む文字列に置き換える方法は?

  3. $ {!foo}そしてZsh?

  1. シェルの$*の各要素に文字列を追加して追加しますか?

  2. ファイルの内容をエンコードして1行としてエコーしますか?

  3. シェルスクリプトでの検索と置換

  1. $(stuff)と `stuff`の違いは何ですか?

  2. リテラル文字列で sed -- 入力ファイルではありません

  3. sed e および g フラグが一緒に機能しない