Wie man grep Anschlag am ersten match auf einer Linie?

Gut, ich habe eine Datei test.txt

#test.txt 
odsdsdoddf112 test1_for_grep 
dad23392eeedJ test2 für grep 
Hallo Welt test 
Müll 

Möchte ich zum extrahieren von Zeichenfolgen, die haben ein Platz nach Ihnen. Ich folgenden Ausdruck verwendet und es funktionierte

grep -o " [[: alnum:]]*.[[:blank:]] test.txt 

Seine Ausgabe ist

odsdsdoddf112 
dad23392eeedJ 
test2 
für 
Hallo 
Welt 

Aber problem ist grep gibt alle Zeichenfolgen, die haben den Raum nach Ihnen, wo, wie ich will, es zu stoppen, nachdem das erste match auf einer Linie und gehen dann zur zweiten Zeile.

Welchen Ausdruck soll ich hier, um es zu stoppen nach dem ersten match und weiter zur nächsten Zeile?

Dieses problem kann gelöst werden mit gawk oder andere tool, aber ich Schätze eine Lösung, die über grep nur.

Bearbeiten
Ich habe es mit GNU grep 2.5.1 auf einem Linux-system, falls das relevant ist.

Bearbeiten

Mit Hilfe der Antworten, die unten gegeben werden, versuchte ich mein Glück mit

grep -o ^[[:alnum:]]* test.txt 
grep -Eo ^[[:alnum:]]+ test.txt 

und beide Gaben mir die richtigen Antworten.

Nun, was mich wundert, ist, dass ich versucht, mit

grep -Eo "^[[:alnum:]]+[[:blank:]]" test.txt 

vorgeschlagen hier aber nicht die richtige Antwort.
Hier ist die Ausgabe auf meinem terminal

odsdsdoddf112 
dad23392eeedJ 
test2 
für 
Hallo 
Welt 

Aber Kommentare von RichieHindle und Adrian Pronk, zeigt, dass Sie auf die korrekte Ausgabe auf Ihren Systemen. Jeder mit etwas Ahnung, der Grund, warum auch ich bin nicht immer das gleiche Ergebnis bei meinem system. Irgendeine Idee? Jede Hilfe wird geschätzt.

Bearbeiten

Gut, es scheint, dass grep-2.5.1 hat einige Fehler, weil von denen meine Ausgabe war nicht korrekt. Ich installierte grep-2.5.4, jetzt ist es korrekt funktioniert. Bitte sehen dieser link für details.

Schreibe einen Kommentar