1

(") 二重引用符を (') 単一引用符に置き換えることに関して、sed の使用法について少し混乱しています。sed で多くの組み合わせを試しましたが、どういうわけか、この特定の変換が許可されません。

どんな援助でも大歓迎です。

ps: 他の置換方法も受け入れていますが、bash (UNIX) では問題なく動作するはずです。

4

4 に答える 4

2

1文字だけを置き換えるには、次を使用することもできますtr

$ printf '%s\n' '"Hello"' | tr \" \'
'Hello'

ユーザー入力を何らかの形で「サニタイズ」するためにこれを使用していないことを願っています...

于 2013-11-01T16:30:56.837 に答える
2

次のように使用できます。

s='abc"def"123'
echo "$s"|sed "s/\"/'/g"

abc'def'123
于 2013-11-01T16:27:21.940 に答える
1

次のようなものを試すことができます:

[ ~]$ echo "'Hello'"|sed "s/'/\"/g"
"Hello"

そして逆:

[ ~]$ echo \"Hello\"|sed "s/\"/'/g"
'Hello'

それ以外の場合は、必要に応じてtr代わりに使用できsedます:

[ ~]$ echo \"Hello\"|tr "\"" "'"
'Hello'
于 2013-11-01T16:26:58.493 に答える