シェルを使用して特殊文字を変更する必要があるため、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/_%>/\]/'
]
正規表現識別子(/)をエスケープするようです。
答え2
パラメータを引用し、s
コマンドを使用して文字列置換を実行する必要があります。この-e
オプションを使用して、複数のコマンド式を提供できます。
sed -i -e 's/<% /[@/' -e 's/ %>/]/' filename