sedを使用して特殊文字を置き換える

sedを使用して特殊文字を置き換える

シェルを使用して特殊文字を変更する必要があるため、sedを使用するのに理解できないエラーが少しあります。

<%_ by [@, ("_" = dash)
_%> by ]

最初の2つの文字について、私の設定は次のとおりです。sed -i y/\<%\/\]\/ test.htm うまくいきますが、ここでダッシュ文字をどのように追加しますか? 2つ目はこれを行う必要がありますが、sed -i y/\%>\/\]\/ このエラーが発生しましたbash: /]/: is a folder 。助けてもらえますか?

ベストアンサー1

何を変更したいのかわかりませんが(最初の場合は - または_で)、これは私にとってうまくいきます。

$ echo "<%_" | sed 's/<%_/_/'
_
$ echo "<%_" | sed 's/<%_/-/'
-
$ echo "_%>" | sed 's/_%>/\]/'
]

正規表現識別子(/)をエスケープするようです。

おすすめ記事