Po pierwsze, jest to praca domowa i niestety muszę użyć egrep (i nie z -w lub coś podobnego).
Potrzebuję mojego grep, aby zwrócić wiersze, które mają dokładnie 5 lub 6 wielkich liter.
Wykonanie egrep [A-Z]{5,6} .filename
zwraca 5 i 6 liter, ale niestety także więcej słów z liter.
Na przykład na tej liście:
ASK
roger ROBERT gulliver
tom THOMAS
JONATHAN moore
MELISSA tenant
Potrzebuję go, by zwrócić tylko ROBERTA i THOMASA.
Odpowiedzi:
źródło
Spróbuj z:
gdzie
^
i$
pasują odpowiednio do początku i końca linii.źródło
Jeszcze inna wersja
a) ograniczone do 5 lub 6 wielkich liter tego słowa;
b) słowo może zawierać nieograniczoną liczbę małych liter, plus „-” i apostrof: „
c) używa znaku krawędzi słowa \ b (zero-width);
Znajduje to więcej niż twoją listę (co byś chciał) i spełnia wszystkie podane ograniczenia. Może to spowodować więcej niż się spodziewałeś, ponieważ pozwala również na dowolną liczbę małych liter między dużymi literami:
Znajdziesz: niesamowite JET-LI
Jane DeSILVA
Ale nie: stary MacDONALD
źródło