2

"'a"ファイル文字列のような文字列を のような文字列に置き換える必要があります'a。実際には、二重引用符を削除する必要があります。

sed を使用してそれを行うことを考えていましたが、今まで解決策を見つけることができませんでした。引用符が原因で構文エラーが発生していると思います。

4

4 に答える 4

2

ファイルからすべての二重引用符を削除する必要がある場合は、次tr-dオプションを使用できます。

$ cat test.txt
this is a test "'a"
something "else"
doesn't touch single 'quotes'

$ cat test.txt | tr -d '"'
this is a test 'a
something else
doesn't touch single 'quotes'

アップデート:

の特定のインスタンスを置き換える場合は"'a"'a次を使用できますsed

sed "s|\"'a\"|'a|g" test.txt
this is a test 'a
something "else"
doesn't touch single 'quotes'

ただし、文字の周りの引用符を置き換えるだけではなく、より一般的なものを求めているのではないかと思いますa。このコマンドは、 のインスタンスをsed次のように置き換えます。"'anything"'anyhting

sed "s|\"'\([^\"]\+\)\"|'\\1|g" test.txt
this is a test 'a
something "else"
doesn't touch single 'quotes'
于 2012-11-19T11:41:32.743 に答える
0

これは私にとってはうまくいくようです

echo '"a"' | sed "s/\"a\"/\'a/"
于 2012-11-19T11:48:18.317 に答える
0

これはうまくいくかもしれません(GNU sed):

sed 's/"\('\''[^"]*\)"/\1/g' file
于 2012-11-19T11:50:36.747 に答える
0

あなたが使用することができます:

perl -pe 's/\042//g' your_file

042 は二重引用符の 8 進数値です。

以下でテスト:

> cat temp
"'a"
> cat temp | perl -pe 's/\042//g'
'a
> 
于 2012-11-19T12:55:50.020 に答える