Zeile in einer Textdatei nach Wortlänge sortieren und Zeilen mit Sondernzeichen ( Ascii-Art ) löschen
Guten Tag an alle Mitglieder,
ich habe ein Problem: für ein Projekt habe ich mehere txt-Dateien. Die Dateien sind groß (mehr als 1.000.000 Zeilen) und ich kann sie nicht mit Excel/Word/Ultraedit/EmEditor/Notepad++/Getedit editieren.
In Dateien selbst sind mehrere Zeile mit jeweils einem Wort vorhanden (oder einem Doppeltwort z.B. Luisa-Marie, Heinrich Schnabel oder Karsten.Mustermann).
Mein Problem:
1) Ich will alle Zeilen innerhalb einer Textdatei nach Wortlänge sortieren, dabei sollen Leerzeichen berücksichtigt werden)
2) Ich will alle Zeilen, die Sondernzeichen und Symbole nach Ascii-Art (außer standarten Tastatur-Symbolen - die müssen bleiben) enthalten, komplett löschen.
Ich will am Ende folgendes haben (die Zeilen müssen nicht unbedingt zusätzlich noch nach A-Z sortiert werden, es reicht wenn sie nach Wortlänge sortiert werden):
Was ich bis jetzt probiert:
Funktioniert fast perfekt, aber kommt nicht klar mit Umlauten - z.B. aus "Zurück" wird "Zur"
Sortiert gut, aber nicht so wie ich es wollte. Ich bekomme dann:
Kann mir jemand helfen? Gerne 2 Lösungen statt "all-in-one" - zuerst Zeilen mit Sondernzeichen und Symbolen löschen und danach nach Wortlänge sortieren.
Danke.
Heinz-Olaf
ich habe ein Problem: für ein Projekt habe ich mehere txt-Dateien. Die Dateien sind groß (mehr als 1.000.000 Zeilen) und ich kann sie nicht mit Excel/Word/Ultraedit/EmEditor/Notepad++/Getedit editieren.
In Dateien selbst sind mehrere Zeile mit jeweils einem Wort vorhanden (oder einem Doppeltwort z.B. Luisa-Marie, Heinrich Schnabel oder Karsten.Mustermann).
Mein Problem:
1) Ich will alle Zeilen innerhalb einer Textdatei nach Wortlänge sortieren, dabei sollen Leerzeichen berücksichtigt werden)
2) Ich will alle Zeilen, die Sondernzeichen und Symbole nach Ascii-Art (außer standarten Tastatur-Symbolen - die müssen bleiben) enthalten, komplett löschen.
Ⓦ-Ⓔ-Ⓛ-Ⓒ-Ⓞ-Ⓜ-Ⓔ
Alex
alex.mustermann
Ƹ̵̡Ӝ̵̨̄Ʒ Ƹ̵̡Ӝ̵̨̄Ʒ ๑۩۞۩๑
karina-palmers
Ⓦ-Ⓔ-Ⓛ-Ⓒ-Ⓞ-Ⓜ-Ⓔ
Becker_Gustav
»¤º°`°º¤ø,¸¸,ø¤º
_.;:+*’`’*+:;..;:+*’`’*+:;. BLABLABLA .;:+*’`’*+:;..;:+*’`’*+:;._
Alejona Shipova
Heinz_Olaf(1)
@ø¤º°`°º¤ø,¸(¯`’·.*.·’´¯)¸,ø¤º°`°º¤ø,¸@
Ⓦ-Ⓔ-Ⓛ-Ⓒ-Ⓞ-Ⓜ-Ⓔ
♥ ♥ ♥ ♥ ♥ ♥ ♥ ♥
Ξx⊂ΞLLΞ∩T
¸.•*(¸.•*´ ♥ `*•.¸)`*•.¸
»¤º°`°º¤ø,¸¸,ø¤º
♫ ♬ ♪ ♩ ♭ ♪ の ☆
┣┓┏┫▄ █ ▌▒『』〖
▶ ▷ ◀ ◁ ☀ ☁ ☂
!!%%§§=**~
Ich will am Ende folgendes haben (die Zeilen müssen nicht unbedingt zusätzlich noch nach A-Z sortiert werden, es reicht wenn sie nach Wortlänge sortiert werden):
Alex
!!%%§§=**~
Becker_Gustav
Heinz_Olaf(1)
karina-palmers
Alejona Shipova
alex.mustermann
_.;:+*’`’*+:;..;:+*’`’*+:;. BLABLABLA .;:+*’`’*+:;..;:+*’`’*+:;._
Was ich bis jetzt probiert:
strings test.txt > neu.txt
Funktioniert fast perfekt, aber kommt nicht klar mit Umlauten - z.B. aus "Zurück" wird "Zur"
sort test.txt > neu.txt
Sortiert gut, aber nicht so wie ich es wollte. Ich bekomme dann:
Alejona Shipova
Alex
alex.mustermann
Becker_Gustav
Heinz_Olaf(1)
karina-palmers
Kann mir jemand helfen? Gerne 2 Lösungen statt "all-in-one" - zuerst Zeilen mit Sondernzeichen und Symbolen löschen und danach nach Wortlänge sortieren.
Danke.
Heinz-Olaf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 311771
Url: https://administrator.de/forum/zeile-in-einer-textdatei-nach-wortlaenge-sortieren-und-zeilen-mit-sondernzeichen-ascii-art-loeschen-311771.html
Ausgedruckt am: 25.04.2025 um 04:04 Uhr
12 Kommentare
Neuester Kommentar

Hi,
you should define your character ranges accurate, because your ascii art lines also contain "standard" characters from ASCII Range <255 like *.! .......
If you define that this is no problem with sed and some other standard tools:
Example
Regards
you should define your character ranges accurate, because your ascii art lines also contain "standard" characters from ASCII Range <255 like *.! .......
If you define that this is no problem with sed and some other standard tools:
Example
sed -rne '/[a-z0-9_]/Ip' data.txt | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2-
Regards

sed is a very effective line based interpreter and does not consume much memory, because it reads the file line by line without much caching.
You can also try grep on the file, it's also very fast.
what ???? That's verry inefficient, you should split them up.
But for sed that doesn't matter, see :
https://lyness.io/the-functional-and-performance-differences-of-sed-awk- ...
You can also try grep on the file, it's also very fast.
Die Dateien sind ca. 30-50 GB groß....
But for sed that doesn't matter, see :
https://lyness.io/the-functional-and-performance-differences-of-sed-awk- ...

Then add your desired additional characters to the regex string...like i said, here i added the exclamation mark
sed -rne '/[a-z0-9_!]/Ip' data.txt | ...........................

Then you have to define specific exeptions. "Sondersymbol" is totally underdefined, sorry !
What is a "Sondersymbol" in your mind??
Tastatur-Standard-Sondernzeichen
??
In your first post you had this line in your final result!
You deleted it afterwards in your post ?????
We cannot post correct results if you change your post after posting it and you don't tell us.
_.;:+*’`’*+:;..;:+*’`’*+:;. BLABLABLA .;:+*’`’*+:;..;:+*’`’*+:;._
We cannot post correct results if you change your post after posting it and you don't tell us.

Then simply negate the sed function and delete the lines which do not match:
Result:
Read more about regular expressions: http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausd ...
Note: Add the desired characters to the list if they are missing.
sed -re '/[^a-z0-9!§$%&/()=?_:;><,.\#\+\{\}\\\|~\*\`´\ ’@-]/Id' info.txt | awk '{ print length, $0 }' | sort -n -s | cut -d" " -f2-
Alex
!!%%§§=**~
Becker_Gustav
Heinz_Olaf(1)
karina-palmers
alex.mustermann
Alejona Shipova
_.;:+*’`’*+:;..;:+*’`’*+:;. BLABLABLA .;:+*’`’*+:;..;:+*’`’*+:;._
Read more about regular expressions: http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausd ...
Note: Add the desired characters to the list if they are missing.