PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zeichen zählen



boxa
25-10-2002, 09:38
HAllo Experten!

Ich suche nach einem Befehl für ein Bash Script, mit dem ich die Anzahl von "\" Zeichen in einem Strig auslesen kann.

Vielen Dank

Hans-Georg Normann
25-10-2002, 16:56
grep -F -c \\ /pfad/datei

Zählt alle Zeilen welche einen \ oder mehrere davon haben. Wenn's wirklich jedes Zeichen sein muß, dann mußt du wohl auf zusätzliche Tools wie z.b. awk oder Python ausweichen.

Hans

lobo
30-10-2002, 16:31
Hi,

so jetzt hab ich mal etwas gebastelt. Erfüllt aber mehr den Zweck als das es sauber funktioniert (habs nicht besser hinbekommen :D ).


cat eingabe.txt | awk '/\\/ { bslashcount += gsub("\\","b") } { print bslashcount }'

/\\/ bedeutet, dass nur Zeilen in denen ein \ vorkommt bearbeitet werden
gsub ersetzt in der aktuellen Zeile, alle \ mit b und liefert die Anzahl der Ersetzten Zeichen zurück (nur ein Workaround um die \ zu zählen).
Die Rückgabe von gsub wird dann in bslashcount aufaddiert.



Die korrekte Anzahl von \ in eingabe.txt ist dann die letzte Zahl die Ausgegeben wird. Ich hab nämlich nicht viel Ahnung von awk und habs noch nicht geschafft, dass bslashcount nur 1 mal und zwar am Schluss ausgegeben wird. Vielleicht kann dieses letzte Problem noch jemand ausbessern.

Gruss

Jochen

Hans-Georg Normann
30-10-2002, 19:57
Endlich mal wieder ne vernünftige awk Anwendung:D

Eigentlich liebe ich awk, obwohl ich ihn immer noch nicht richtig verstanden habe.:mad:

Hans