(") 二重引用符を (') 単一引用符に置き換えることに関して、sed の使用法について少し混乱しています。sed で多くの組み合わせを試しましたが、どういうわけか、この特定の変換が許可されません。
どんな援助でも大歓迎です。
ps: 他の置換方法も受け入れていますが、bash (UNIX) では問題なく動作するはずです。
1文字だけを置き換えるには、次を使用することもできますtr
。
$ printf '%s\n' '"Hello"' | tr \" \'
'Hello'
ユーザー入力を何らかの形で「サニタイズ」するためにこれを使用していないことを願っています...
次のように使用できます。
s='abc"def"123'
echo "$s"|sed "s/\"/'/g"
abc'def'123
次のようなものを試すことができます:
[ ~]$ echo "'Hello'"|sed "s/'/\"/g"
"Hello"
そして逆:
[ ~]$ echo \"Hello\"|sed "s/\"/'/g"
'Hello'
それ以外の場合は、必要に応じてtr
代わりに使用できsed
ます:
[ ~]$ echo \"Hello\"|tr "\"" "'"
'Hello'