UWAGA: To pytanie jest uzupełnieniem tego pytania i odpowiedzi: Jak „grep” dla długości linii * nie * w danym zakresie?
Muszę uzyskać tylko wiersze z pliku tekstowego (lista słów oddzielona znakiem nowej linii), który ma zakres długości minimum lub równy 3 znakom, ale nie dłuższy lub równy 10.
Przykład:
WKŁAD:
egyezményét
megkíván
ki
alma
kevesen
meghatározó
WYDAJNOŚĆ:
megkíván
alma
kevesen
Pytanie: Jak mogę to zrobić bash
?
grep -x '.\{3,10\}'
Odpowiedzi:
gdzie
-x
dopasuj wzór do całej linii.
dowolny symbol{3,10}
obliczyć od 3 do 10 razy poprzedni symbol (w przypadku dowolnych)źródło
przy użyciu egrep
dopasowuje od początku do końca linii dla 3 lub więcej znaków, ale mniej niż lub 10 znaków.
źródło
Używanie
sed
:Lub:
źródło
Używanie
awk
:length
Oświadczenie wróci długość$0
(aktualny rekord / linia) domyślnie, a ten jest używany przez kod do testu pogoda długość linia jest w podanym zakresie. Jeśli test taki jak ten nie ma odpowiedniego bloku akcji, domyślną akcją jest wydrukowanie rekordu.Testowanie podanych danych:
Podobnie z Perlem:
źródło