Die eigentliche Frage ist also: Hat jemand eine Idee, wie man M-BM-
Sonderzeichen entfernt, ohne das Risiko einzugehen, andere Zeichen zu verlieren?
Ich habe eine Textfolge:
" . . ."
das ist
space dot space dot space dot
Ich versuche, alle Vorkommen dieser Zeichenfolge in der Textdatei zu ersetzen
"..."
das ist
dot dot dot
Ich habe versucht mit sed zu tun:
sed -r 's:\s\.\s\.\s\.:...:g' -i sed-dots
Leider ändert es die Eingabedatei nicht einmal ein bisschen. Datei: https://www.dropbox.com/s/46zmiruy3ln85a1/sed-dots
Wenn ich versuche, dieselbe Zeichenfolge im Texteditor zu ersetzen (ich verwende geany), wird sie gefunden und ordnungsgemäß ersetzt.
Der einzige Grund, an den ich denken kann, ist, dass einige (oder alle) dieser Räume nicht wirklich Räume sind, sondern ein besonderer Charakter.
Hat jemand eine Idee, wie man diese Zeichenfolge findet und durch sed (oder ein anderes Befehlszeilenprogramm) ersetzt? Bitte testen Sie Ihre Idee in meiner Datei, da das Problem nicht so offensichtlich ist, wie es scheint - deshalb habe ich danach gefragt.
Nach der Verwendung von cat -A
myfile scheint es ein Problem zu sein, dass diese Leerzeichen keine Leerzeichen, sondern M-BM-
Sonderzeichen sind. Die Verwendung eines .
für die Suche vorgeschlagenen Symbols ist keine gute Idee, da das Risiko besteht, dass einige andere Zeichen entfernt werden.
echo
eine Datei zu verwenden, anstatt sie zu kattieren. Zumindest wenn Sie eine Datei katzen, wissen Sie, dass die Shell nichts interpretiert und Echo auch nicht.