
93578
14.08.2016, aktualisiert um 14:11:47 Uhr
Alle Zeilen mit Zeichen, die nicht auf einer deutschen Tastatur vorhanden sind, in einer UTF-8 Textdatei löschen?
Hallo liebe Forum-Mitglieder,
ich war lange nicht mehr hier. Ich habe ein folgendes Problem:
ich will alle Zeilen in einer Textdatei, die mindestens 1 Zeichen enthalten, das nicht auf der deutschen Tastatur vorhanden ist, löschen. Und nur Zeilen mit Zeichen lassen, die auf deutscher Tastatur vorhanden sind.
Die Zeichen, die ich brauche : a-zA-Z0-9ßüöäÜÖİ!"§$%&/()=?`´\}][{^@~+*#'-_.:,;<>|
Die Zeichen, die ich nicht brauche (Beispiel):
яшеффмГЫЙ
!
ÀÁÂÆÇÍÌØÐåæçą
ﻃﺘﺳﺷﺙ ﹹﴼ﴿﷼ﷺ
¤©®¬±²³¶¹¸ƱDžǯ☻♀♥Ⱳ♫Ᵽ╬╕┘│║√⅞↑↓↔↕↨
熬奥澳坳鏖聱厂广艾
Die Lösung, die ich hier gefunden habe:
geht nicht so richtig.
Testdatei:
Es sollen nur Zeilen bleiben:
Falls ich es versuche, das oben genannten Befehl so zu modifizieren:
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\€\ß\*\`´\ ’@-]/Id' info.txt
Bekomme ich:
Die Zeile mit dem Wort kei't fehlt aber (der Rest wird korrekt entfernt). Und dort befindet sich auch eine Zeile , die ich eigentlich löschen wollte ! ! !
Falls ich es versuche, das oben genannten Befehl so zu modifizieren (Apostroph-Zeichen hinzufügen \' ):
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\€\ß\'\*\`´\ ’@-]/Id' info.txt
bekomme ich Meldung
Was mach ich da falsch?
Und wie kann ich solche Kombinationen wie ! ! ! automatisch löschen?
Grüße,
Philipp
ich war lange nicht mehr hier. Ich habe ein folgendes Problem:
ich will alle Zeilen in einer Textdatei, die mindestens 1 Zeichen enthalten, das nicht auf der deutschen Tastatur vorhanden ist, löschen. Und nur Zeilen mit Zeichen lassen, die auf deutscher Tastatur vorhanden sind.
Die Zeichen, die ich brauche : a-zA-Z0-9ßüöäÜÖİ!"§$%&/()=?`´\}][{^@~+*#'-_.:,;<>|
Die Zeichen, die ich nicht brauche (Beispiel):
яшеффмГЫЙ
!
ÀÁÂÆÇÍÌØÐåæçą
ﻃﺘﺳﺷﺙ ﹹﴼ﴿﷼ﷺ
¤©®¬±²³¶¹¸ƱDžǯ☻♀♥Ⱳ♫Ᵽ╬╕┘│║√⅞↑↓↔↕↨
熬奥澳坳鏖聱厂广艾
Die Lösung, die ich hier gefunden habe:
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\*\`´\ ’@-]/Id' info.txt
geht nicht so richtig.
Testdatei:
über
benutzer
123Holger
außer
lösen
überall
kei't
f€werf
123$%&/
>AWSX;:*
™wow™
™©2808197Le
™?;?8?(?N†m
1357997531Њ
laslo♀♥Ⱳ♫Ᵽ
! ! !
熬奥澳-123
ﻃﺘﺳﺷﺙ
Es sollen nur Zeilen bleiben:
über
benutzer
123Holger
außer
lösen
überall
kei't
f€werf
123$%&/
>AWSX;:*
Falls ich es versuche, das oben genannten Befehl so zu modifizieren:
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\€\ß\*\`´\ ’@-]/Id' info.txt
Bekomme ich:
über
benutzer
123Holger
außen
lösen
überall
f€werf
123$%&/
>AWSX;:*
! ! !
Die Zeile mit dem Wort kei't fehlt aber (der Rest wird korrekt entfernt). Und dort befindet sich auch eine Zeile , die ich eigentlich löschen wollte ! ! !
Falls ich es versuche, das oben genannten Befehl so zu modifizieren (Apostroph-Zeichen hinzufügen \' ):
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\€\ß\'\*\`´\ ’@-]/Id' info.txt
bekomme ich Meldung
>
Und wie kann ich solche Kombinationen wie ! ! ! automatisch löschen?
Grüße,
Philipp
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 312623
Url: https://administrator.de/forum/alle-zeilen-mit-zeichen-die-nicht-auf-einer-deutschen-tastatur-vorhanden-sind-in-einer-utf-8-textdatei-312623.html
Ausgedruckt am: 06.05.2025 um 16:05 Uhr
3 Kommentare
Neuester Kommentar

Zitat von @93578:
Aber wie kann ich Zeilen a-la ! ! ! löschen?
Also add it to the regex as an additional OR (|) expressionAber wie kann ich Zeilen a-la ! ! ! löschen?
sed -re "/[^a-z0-9äöü€\!\§\$\%\&/()=?_:;><,.\#\+\{\}\\\|~\€\ß\'\*\`´\ ’@-]|&#[0-9]+/Id" info.txt
results in
über
benutzer
123Holger
außer
lösen
überall
kei't
f€werf
123$%&/
>AWSX;:*
-- small correction