sedで引用符を正しく使用する方法は? [コピー]

sedで引用符を正しく使用する方法は? [コピー]

たとえば、私は変更したいです

"'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

出力:

「この記事」
「その文字」
「他のテキスト」

望むより:http://www.asciitable.com/

答え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'

関連情報