Strona 1 z 1

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

: 09 lipca 2013, 20:50
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?

: 09 lipca 2013, 21:18
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.

: 09 lipca 2013, 22:13
autor: kodama
Dziękuję Ci bardzo, o takie coś chodziło.