Anzahl von Buchstaben (-paare, -tripel) aus Text auslesen

N

NightmareVirus

Grünschnabel
Hi Leute,
Ich steige gerade in Unix ein, und versuche einige Aufgaben zu lösen. Derzeit stehe ich vor der Aufgabe aus einem Text (ein ganzes Buch als *.txt) jeweils die Anzahl der Buchstaben, Buchstabenpaare und Buchstabentripel auszulesen.:hilfe2:
(groß der kleinschreibung ist egal)

Ich habe bisher in anderen Teilaufgaben mit den Befehlen
Code:
cat, tr, sed, wc, sort, uniq, awk
gearbeitet.

Ich habe auch aus einem Bearbeitungsschritt zuvor den Text so umgeformt, dass ich jeder Zeile genau ein Wort steht (ohne Leerzeichen).

Ich habe schonmal versucht mit dem Befehl grep aus dem Teststring "Hallo Welt" die Anzahl der l auszulesen mit

Code:
echo "Hallo Welt" | grep -c [l]
wird mit aber eine 1 ausgegeben.:think:

Ich hoffe ihr könnt mir einen Tipp geben.:oldman

P.S: Shell müsste die Bash sein, unter Suse 11.1
 
Hallo,

und willkommen im Board: Das hier sollte deine Frage beantworten.

cu
 
Zuletzt bearbeitet:
Hi,
danke schonmal für die antwort. Das hat mir zumindest für den Anfang schonmal geholfen:

Speichere ich zunächst mit

Code:
echo "aaabbc" > datei

den String aaabbc in der Datei a liefert

Code:
grep -o a datei | wc -l

die Anzahl der auftretenden a's nämlich 3.

So weit so gut. Ich würde das aber gerne für alle Buichstaben (und Zeichen) machen. D.h. am Ende würde bei diesem Beispiel etwas ausgegeben in der Form:
3 a
2 b
1 c

Ich möchte den Befehl ungern für alle 26 Buchstaben einzeln ausführen, zumal die Problematik von Buchstabenpaaren und tripeln damit nicht angegangen werden kann
 
Ich glaube nicht, dass du da mit einem Einzeiler weiter kommst. Zumal es ja dann nichtmal mit 26 Buchstaben getan wäre. Man denke nur an UTF-8. Ich würde an deiner Stelle versuchen, die Ausgabe von
Code:
echo "Hallo Welt" | egrep '[[:alpha:]]' -o
irgendwie weiter zu verarbeiten. Bei identischen Zeichen hintereinander, könnte man z.B.
Code:
echo "Hallo Welt" | egrep '[[:alpha:]]' -o | uniq -c | grep -v 1
benutzen.

Edit:

Mir ist noch sort eingefallen. Das listet das Vorkommen aller auftretenden Zeichen.
Code:
echo "Hallo Welt" | egrep '[[:alpha:]]' -o | sort -i | uniq -c

cu
 
Zuletzt bearbeitet:

Ähnliche Themen

CSV-Datei auslesen und Dateien zuordnen

uniq - trotzdem doppelte einträge

Zurück
Oben