ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
606
606
EMPFEHLEN
-
Moin Moin an Alle,
ich würde gern Skript schreiben das folgendes macht:
Guckt in eine .txt-datei und wenn an der 5ten Stelle einer Zeile ein X steht, soll die Zahl am Ende der Zeile( an der 10ten Stelle, aber ich denke es ist einfacher zu sagen am Ende) zu einer Laufvariablen addiert werden. Und so halt das ganze Dokument durchsuchen.
Könnt ihr mir da helfen? ich hab vorallem Probleme mit dem Anfang, wo es ums auslesen der zahl geht.
Vielen Dank im Vorraus,
Zuixy
-
28.10.11 15:17 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Nach der Unix Philosophie: für jede Aufgabe das geeignete Tool:
GrußCode :1
awk 'BEGIN { i = 0; } ($5 == "X") { i = i + $10; } END { print i }'If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hey,
vielen Dank für die schnelle Antwort. So wie ich das verstehe sagt die Zeile aus:
Laufvariable: I
Wenn Zeichen 5 = X dann addiere Zeichen 10 zu i
Am Ende gebe i aus.
Allerdings hab ich noch ne Frage. Wie sag ich dem Programm, das es die Datei log.txt öffnen soll und das dann dort ausführt?
Grüße
-
28.10.11 15:54 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.Ja.
Einfach als Parameter übergeben:
oder (z.B. wenn die Datei noch vorverarbeitet werden soll) einfach auf die Standardeingabe schreiben:Code bash:1
awk .... log.txt
GrußCode bash:1
cat log.txt | awk ...
PS: Mit $NF kannst du übrigens auf das letzte Feld einer Zeile zugreifen.Geändert von deepthroat (28.10.11 um 16:03 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
ich hab jetzt mal was probiert.
Die Datei "Eins" hat den Inhalt:
a=3
Und das Skript lautet:
#!/bin/bash
awk 'BEGIN { i = 0; } ($1 == "a") { i = i + $3 ; } END { print i }' Eins
Ich dachte eigentlich ich bekomm dann als Ausgabe 3 aber es kommt immer nur 0. Was hab ich falsch gemacht?
Grüße
-
28.10.11 17:20 #6
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Du warst wohl etwas ungenau bei der Beschreibung deines Problems. Deshalb hab ich dich wohl missverstanden.
Mit der "5ten Stelle einer Zeile" meinst du wohl das 5. Zeichen der Zeile?
AWK arbeitet etwas anders (schau doch mals ins Handbuch: http://www.manpagez.com/man/1/awk/). Aber man kann es auch dafür missbrauchen.
GrußCode :1
awk -F '' ...
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Hey,
vielen Dank. Ich habs jetzt hin bekommen.
Grüße
Zuixy
Ähnliche Themen
-
Zahlen (double) aus einer Textdatei in 2-dim array speichern
Von ania im Forum C/C++Antworten: 8Letzter Beitrag: 19.07.10, 15:09 -
auslesen einer textdatei und in eine neue textdatei schreiben
Von prinzessin4444 im Forum C/C++Antworten: 3Letzter Beitrag: 10.12.08, 12:01 -
Auslesen aus einer Textdatei
Von andy555 im Forum PHPAntworten: 11Letzter Beitrag: 16.08.06, 15:32 -
x-Zeile einer Textdatei auslesen
Von schiese im Forum PHPAntworten: 9Letzter Beitrag: 01.06.06, 22:02 -
Auslesen einer Textdatei
Von skee im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 02.12.03, 09:57





Zitieren

Login





