Mam plik zawierający wiele wierszy xml. Chciałbym zastąpić niektóre części pliku. Niektóre części pliku zawierają znaki cudzysłowu ( "), które chciałbym zastąpić. Próbowałem uciec od znaku cudzysłowu \, ale nie sądzę, że działa to na podstawie wyniku mojego pliku.
Oto przykład jednego z moich poleceń sed:
sed -e "s/\"text\"/'text'/ig" file.xml > temp.tmp
Czy w ten sposób unikasz cudzysłowów w poleceniu sed, czy robię coś złego?
\"prawidłowy sposób na unikanie cudzysłowów w poleceniu sed?
". Ale twoje polecenie powłoki używa podwójnego cudzysłowu i \"jest tam poprawne. sedProgram widzi s/"text"/'text'/igjako argument -e.
s/\"text\" /'text'/igCzy znajdzie tylko "text" po spacji po nim?
sedjest to odpowiednie narzędzie do pracy, może potrzebujesz parsera XML.
"text"ze'text'. Oczywiście nic to nie da"othertext". Pokaż kilka wierszy wejściowych, odpowiadające im niepożądane wyjście i wyjaśnij, jakiego wyjścia chcesz.