[+] Dopasowanie wyrażenia regularnego w po

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

[+] Dopasowanie wyrażenia regularnego w połączeniu z grep

Post autor: kodama »

Cześć,
Mam taki problem: jest sobie plik z takimi linijkami

Kod: Zaznacz cały

ABC000000AAAAAA
TYU000000214065
FGH000000BBBBBB
ZSD000000HHHHHH
Tomek Atomek019
....
Jak napisać wyrażenie regularne (ang. regexp) do grepa, żeby wyciągnąć tylko linijkę, która zaczyna się od 3 znaków alfabetu, potem 6 zer i na końcu 6 cyfr? Czyli według przykładu chodzi o linijkę nr. 2

Takie coś:

Kod: Zaznacz cały

cat plik.txt | grep '.[0-9]$'
"prawie" działa, tylko w wyniku mam też ostatnią linijkę z tego przykładu, która jest mi zbędna. Wiem, że mogę sobie po kolei sprawdzać znaki, ale na pewno też ktoś wie jak napisać wyrażenie regularne, żeby tę jedną linijką załatwić.

Może inaczej jeszcze - jak napisać takie wyrażenie, żeby sprawdzało tylko 6 ostatnich znaków z każdej linii, bo to w sumie wystarczy chyba - jeżeli 6 ostatnich znaków będzie [0-9] to powinno już działać. Ja niestety w wyrażeniach regularnych i kombinacjach na nich mocny nie jestem.
Pomożecie?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

U mnie działa:

Kod: Zaznacz cały

grep -E '^[[:alpha:]]{3}[0]{6}[[:digit:]]{6}$'
3 litery, 6 zer i 6 cyfr i ani mniej ani więcej.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Dziękuję Ci bardzo, o takie coś chodziło.
ODPOWIEDZ