次のデータセットがあります。
\"XXX \ START sapiodj \\" aj \d 2387 END hddo\" START bbcc \\" END ss
\
私の要件:STARTとENDの間にあるすべてのバックスラッシュと二重引用符を削除したいです。"
希望の出力:
\"XXX \ START sapiodj aj d 2387 END hddo\" START bbcc END ss
メモ:
- 同じ行に複数のSTART/END
- 他の場所では削除せずにSTARTとENDの間だけを
\
削除したいと思います。"
- 私のファイルには複数の行があります(上記のものと似ています)。
sed
ただ使用する必要があります。
次の方法を試しましたが("
最初に個別に削除しようとしました)、目的の結果が得られませんでした。
sed '/START/,/END/ s/"//g'
ベストアンサー1
`
ファイルに文字がないとします。下のすべての行を別の文字に変更すると、`
その文字は入力に表示されません。
sed -e 's/END/`/g;:X' -e 's/\(START[^`]*\)["\]/\1/g;tX' -e 's/`/END/g'