たとえば、私は変更したいです
"'this text'"
"that text"
'other_text'
入力する
'this text'
"that text"
'other_text'
頑張った
sed -e 's/^"\'/"/g'
しかし、私の引用は間違っているに違いありません。
Ubuntu。
答え1
GNU sedの使用:
sed 's|\x22\x27|\x27|;s|\x27\x22|\x27|' file
出力:
「この記事」 「その文字」 「他のテキスト」
答え2
\
引用符の中にエスケープは使用できません''
。だからすべてを""
引用符で囲んで"
段落を外してください。"s/^\"'/'/g"
または、''
見積もりを終了し、次の手順を実行して\'
見積もりを再開します。''
's/^"'\''/'\''/g'
\
また、sとsで簡単に混同される場合は、sを区切り文字として/
使用する必要がないことに注意してください。/
次の文字を使用できます。"s%^\"'%'%g"
これは、行の最初の最初の引用符のみを引用します。これはあなたが苦労しているようです。
答え3
この行を試してください
sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file
sed
式を囲む代わりに、' '
次のように" "
使用できます。\
" "
例えば
@tachomi:~$ echo "\"'this text'\""
"'this text'"
@tachomi:~$ echo "\"'this text'\"" | sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g"
'this text'
実施例2
@tachomi:~$ cat file.txt
"'this text'"
"that text"
'other_text'
@tachomi:~$ sed -e "s/^\"'/\'/g" -e "s/'\"$/\'/g" file.txt
'this text'
"that text"
'other_text'