Cóż, mam plik test.txtJak zrobić grep zatrzymać przy pierwszym meczu na linii?
#test.txt odsdsdoddf112 test1_for_grep dad23392eeedJ test2 for grep Hello World test garbage
chcę wyodrębnić ciągi, które posiadają przestrzeń za nimi. Kiedyś następujące wyrażenie i to działało
grep -o [[:alnum:]]*.[[:blank:]] test.txt
Jego wyjście jest
odsdsdoddf112 dad23392eeedJ test2 for Hello World
Ale problemem jest to, drukuje grep wszystkie sznurki, które posiadają przestrzeń za nimi, gdzie, jak chcę go zatrzymać po pierwszym meczu na linię, a następnie przejdź do drugiej linii.
Które wyrażenie należy tutaj użyć, aby zatrzymać się po pierwszym dopasowaniu i przejść do następnej linii?
Ten problem może zostać rozwiązany za pomocą gawk lub innego narzędzia, ale doceniam rozwiązanie, które używa tylko grep.
Edycja Używam GNU grep 2.5.1 na systemie Linux, jeśli jest to istotne.
Edit
Z pomocą odpowiedzi udzielonych poniżej, próbowałem szczęścia z
grep -o ^[[:alnum:]]* test.txt grep -Eo ^[[:alnum:]]+ test.txt
i oba dał mi poprawnych odpowiedzi.
Teraz co zaskakuje mnie to, że próbowałem za pomocą
grep -Eo "^[[:alnum:]]+[[:blank:]]" test.txt
jak sugeruje here ale nie dostać poprawną odpowiedź. Oto wynik na moim terminalu
odsdsdoddf112 dad23392eeedJ test2 for Hello World
Ale komentarze od RichieHindle i Adrian Pronka pokazuje, że dostali prawidłowego wyjścia na swoich systemach. Ktoś, kto ma jakieś pojęcie, dlaczego ja też nie osiągam tego samego wyniku w moim systemie. Dowolny pomysł? Każda pomoc zostanie doceniona.
Edit
Cóż, wydaje się, że grep 2.5.1 ma jakiś błąd, z powodu której moja moc nie była prawidłowa. Zainstalowałem grep 2.5.4, teraz działa poprawnie. Aby uzyskać szczegółowe informacje, patrz: this link.
Skopiowałem twoje polecenie do mojego terminalu, ale otrzymałem dokładnie taki sam wynik. –
@ andrew-dufresne: Czy jest coś dziwnego w twoim pliku tekstowym? Spróbuj 'od -c test.txt' Czy to oznacza znaki, które spodziewałeś się zobaczyć? – RichieHindle
@RichieHindle: Dzięki za szybkie odpowiedzi, naprawdę to doceniam. I wykonał polecenie i dostaje te same znaki jak w Test.txt –