PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sed verzweiflung


R300
2009-01-19, 20:37:23
Hallo,
ich würde gerne aus einer Datei, die die folgende Zeile enthält nur die pid ZAHL ausgegeben haben und nicht die ganze Zeile.

spawn-fcgi.c.206: child spawned successfully: PID: 1387

Sorry aber ich habe grade keine Zeit mir das hier komplett durchzulesen.
http://www.tty1.net/sed-tutorium/html/index.html

Bei google habe ich nichts gefunden was bei mir funktioniert.
Ich kriege immer nur die ganze Zeile raus. :mad:
Bin grade einfach zu doof dafür.

Sephiroth
2009-01-19, 20:44:35
sed ist dafür auch völlig falsch
probier grep oder awk

sun-man
2009-01-19, 21:19:46
Also wenn die Zeilen vom Aufbau wirklich gleich aussehen
cut -d : -f 2 (oder 3)

ich bin ein Shell-Honk und kann sowas ohne Shell nicht.

wobei awk -F ; '{print $3}' auch gehen müsste. Ich verhgau die Hochkomma immer, also bitte prüfen.

sed ist doch eher zum ersetzen usw.

Gast
2009-01-19, 22:26:54
echo 'spawn-fcgi.c.206: child spawned successfully: PID: 1387' | grep -o -e '[0-9]\{1,5\}$'


sed würde wohl auch gehen, wenn weder cut noch grep vorhanden ist. ist das hier der fall?

sun@sun-
2009-01-20, 11:34:57
sry, sitze an ner SUN ohne Reg....
Testfile mit den einträgen, nur die PID geändert.

testfile sieht so aus:
spawn-fcgi.c.206: child spawned successfully: PID: 1387
spawn-fcgi.c.206: child spawned successfully: PID: 1388
spawn-fcgi.c.206: child spawned successfully: PID: 1487
spawn-fcgi.c.206: child spawned successfully: PID: 1287
spawn-fcgi.c.206: child spawned successfully: PID: 1357
spawn-fcgi.c.206: child spawned successfully: PID: 1187

geht, hat aber ein Space am Anfang
cat testfile.txt | cut -d":" -f4

Zahl am Anfang ohne Space....-c2-6 solltene eben bis zu 6 Zeichen der PID nehmen
cat testfile.txt | cut -d":" -f4 | cut -c2-6

geht leider nicht auf solaris
cat testfile.txt | grep -o -e '[0-9]\{1,5\}$'

geht, hat aber auch wieder nen Space am Anfang wenn es gefunden wird.
cat testfile.txt | awk -F":" '{print $4}'


Vorausgesetzt die sind halt alle gleich aufgebaut funzt das auch besser:
cat testfile.txt | awk -F" " '{print $6}'
oder
cat testfile.txt | cut -d" " -f6

MFG

Gast
2009-01-20, 13:05:04
geht, hat aber ein Space am Anfang
cat testfile.txt | cut -d":" -f4


cat testfile.txt | cut -d ":" -f4 | tr -d ' '
#bzw ohne 'Deppen-cat'
cut -d ":" -f4 testfile.txt | tr -d ' '



geht leider nicht auf solaris
cat testfile.txt | grep -o -e '[0-9]\{1,5\}$'

Getestet mit GNU grep 2.5.3. Unterscheidet sich imho von anderen grep-varianten.

R300
2009-01-21, 21:21:25
Danke Danke!
cut -d : -f 4 war wohl das einfachste. :smile: