Wie kann ich loswerden dieser unicode-Zeichen?
Keine Ahnung, wie, um loszuwerden, diese irritierende Zeichen U+0092 aus einer Reihe von text-Dateien? Ich habe versucht, alle die unter, aber es funktioniert nicht. Es heißt U+0092+Einstellungen aus der Zeichentabelle
sed -i 's/\xc2\x92//' *
sed -i 's/\u0092//' *
sed -i 's///' *
Ah, ich habe einen Weg gefunden:
CHARS=$(python2 -c 'print u"\u0092".encode("utf8")')
sed 's/['"$CHARS"']//g'
Doch gibt es auch einen direkten sed-Methode für diese?
- Einfache Anführungszeichen werden aufhören, Ihre Schale aus Analyse escaped notation für backtick. Ich bin mir nicht sicher, sed würde dies zu tun selbst, so vielleicht versuchen Sie doppelte Anführungszeichen?
- dieser Kerl ist trickreich. es ist eine Art nicht-Raum bricht, es ist U+0092, wird in der txt aber nicht sichtbar.
- U+0092 ist eine nie verwendete steuerzeichen. Es ist fast immer das Ergebnis von misdecoding einen richtigen zitieren
’
in einer Windows code page 1252-Datei als ISO-8859-1. Die Codierungen sind sehr ähnlich, aber die Zeichen kodiert das byte-Bereich 0x80–0x9F sind unterschiedlich. In diesem Fall sollten Sie nicht loswerden oder die andere intelligente Anführungszeichen, Sie sollten nur Lesen, Sie richtig als ISO-8859-1 oder transkodieren die Datei von 1252 auf 8859-1 oder UTF-8.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
sed "s/\`//g" *
. (Ich fügte hinzu, dieg
so wird es entfernen Sie alle backticks es findet).BEARBEITEN: Es ist nicht ein einfaches schließendes Anführungszeichen, dass OP entfernen will.
Folgenden die Lösung in diese Frage, dieser sollte funktionieren:
Zeigen, dass er tut:
Sehen, wie es ist etwas, was Sie bereits versucht, vielleicht ist was in deiner text Datei ist nicht U+0092?
sed 's/\xc2\x92//g'
hat nicht funktioniert, aberCHARS=$(python -c 'print u"\u0092".encode("utf8")') sed 's/['"$CHARS"']//g'
funktioniert einwandfrei. Da u0092 und \xc2\x92 sollte den gleichen Charakter, ich bin mir nicht sicher, warum das eine funktioniert, die andere aber nicht.Könnte dies für Sie arbeiten (GNU sed):
Angezeigt wird der string als sed sieht es in oktal, dann verwenden:
Wo
nnn
ist der oktale Wert, löschen Sie Sie.