^F
sagt Ihnen vim, dass es dort ein nicht druckbares Zeichen 0x06 gibt (F ist der sechste Buchstabe des Alphabets, sie reichen von '^ @', '^ A', '^ B' ... '^ Y', '^ Z '.' ^ [',' ^ \ ',' ^] ',' ^^ ',' ^ _ ')
Ich hatte kein Problem damit, es grafisch in vim, nano, joe ... sed -i 's/\x06//g' filename
zu entfernen. Wenn Sie jedoch einen Befehlszeilenansatz bevorzugen und wissen, dass es sich um das Zeichen 0x06 handelt, können Sie es verwenden , um es zu entfernen.
PS: Ich befürchte, dass die Polym-Lösung zum Entfernen von ^ F on cat -v
nur funktioniert, wenn Ihre Datei keine anderen nicht druckbaren Zeichen enthält, die beschädigt werden könnten.
cat -v
) führt dies auch zu einer Beschädigung, wenn die Datei^
Zeichen enthält, denen unmittelbarF
Zeichen folgen .Da Sie mit der Datei in vim arbeiten, können Sie dies auch in vi / vim beheben. Sie können diese Zeichen mit Strg-V und dann mit Strg- eingeben. Dafür ist es crtl-v, gefolgt von ctrl-f.
Sie können also ein einfaches Suchen / Ersetzen verwenden:
Das würde in allen Zeilen (%) funktionieren und (s), die erste Instanz von ^ F, durch nichts ersetzen und sie effektiv entfernen.
Wenn Sie versteckte Zeichen in Dateien anstelle von cat sehen möchten, verwenden Sie od -c:
zB aber ein ^ F und zwei Zeilenenden in eine Datei einfügen:
Dies druckt alle Zeichen aus, einschließlich Tabulatoren, Zeilenenden usw.
Wenn Sie sed verwenden möchten, können Sie denselben Strg-V- und CRTL-Trick auch direkt in der Befehlszeile verwenden. Auf diese Weise müssen Sie sich nicht an die Übersetzung erinnern.
quelle