Mam plik w formacie:
"data","data","data",data"
.
Teraz, jeśli dane mają "
w sobie, mój analizator składni nie może przeanalizować pliku. Więc chcę użyć sed do zastąpienia "
z """
ale nie tam, gdzie widzi ","
jak to jest w zasadzie ogranicznik.
Nie mogę zrozumieć, jakie powinny być parametry sed.
","
?Odpowiedzi:
Jestem pewien, że możesz to zrobić,
sed
ale w Perlu jest mi znacznie łatwiej:WYJAŚNIENIE:
perl -pe
: wykonaj skrypt podany w wierszu polecenia w każdym wierszu pliku wejściowegos/([^,])\"/$1xxx/g;
: zastępuj każde wystąpienie"
poprzedzone dowolnym znakiem przecinkowym losowym ciągiemxxx
. Zakłada się, że Twoje dane nigdy nie będą zawieraćxxx
.s/xxx,/\",/g;
: zastąp texxx
, po których następuje przecinek z powrotem do",
.s/xxx/\\\"/g
: zastąp resztęxxx
cudzysłowami\"
, będą to te,"
które były w Twoich danych.PRZYKŁAD:
źródło