Hallo, ich habe ein Shellscript in dem ich eine Variable Verarbeite. Die Variable ist ein Text, also ein STring. Nun kann es sein das darin ein Anführungszeichen ist und dann gibt es mit der Variable imn späteren Verlauf Probleme. Daher .... wie kann ich dieses Zeichen: " in einem Shellstring herausfiltern ???
Hochkomma ausfiltern
|
Anmeldungsdatum: Beiträge: 843 |
|
||
|
Anmeldungsdatum: Beiträge: 269 |
komplett entfernen oder ersetzen? Beides kriegt man auf jeden Fall mit sed hin. echo foo\"bar | sed "s#\"##" foobar |
||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
Was für Probleme? Man kann Variablen mit solchem Inhalt ganz normal verarbeiten.
Also, wo ist das Problem?
Erst mal sollten wir klären, ob das nötig ist. Vermutung ist, dass Du ggf. nicht richtig gequotet hast. Aber dafür müsstest Du mitteilen, wie Du die Variable nutzt. |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 843 |
Hallo, das Ergebnis wird in einem PHP Script verarbeitet und die Probleme treten erst hier auf. Aber ich möchte um das zu vermeiden bereits bei der Datenaufarbeitung diese fehlerhaften Daten herausfiltern. |
||
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 843 |
|||
|
Anmeldungsdatum: Beiträge: 269 |
Und wo ist da das Problem? Ein bisschen Eigeninitiative ist immer gerne gesehen var='foo"bar' var2=$(echo $var | sed "s#\"##") echo $var2 foobar |
||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
Dann müsstest Du es so ersetzen, dass das Escaping in PHP ordentlich funktioniert. Vielleicht so:
Annahme: der Backslash wird in PHP als Escape für Anführungsstriche innerhalb eines Strings verwendet. Dann muss man die Anführungsstriche und den Backslash escapen. Möglicherweise auch mehr. |
||
|
Anmeldungsdatum: Beiträge: 7174 |
Ooooch - track@track:~$ var='foo"bar'
track@track:~$ echo "${var//\"/}"
foobar
track@track:~$ v2=${var//\"/\\\"}
track@track:~$ echo $v2
foo\"bar LG, track |
||
|
Projektleitung
Anmeldungsdatum: Beiträge: 13242 |
Erstens geht das nur in der |