UWAGA: To pytanie jest uzupełnieniem tego pytania i odpowiedzi: Jak „grep” dla długości linii w danym zakresie?
Jak możemy grepować dla linii, które mają mniej niż 8 lub więcej niż 63 znaki, żadna nie zawiera więcej niż osiem i mniej niż 63 znaki?
Tak więc niektóre dopuszczalne liczby znaków mogą być ...
7 6 5 4 3 2 1 0
...i...
64 65 66 67 ...
text-processing
grep
regular-expression
LoukiosValentine79
źródło
źródło
grep
, ale możesz to rozważyćawk
, szczególnie jeśli potrzebujesz dalszego przetwarzania itp. (Bardzo elastyczny i czytelny ):awk '( length($0)<8 ) || ( length($0)>63 )'
#default działanie warunku polega na wydrukowaniu linii spełniających warunek. Lub przy mniejszym przetwarzaniu za 0 USD:awk '{ l=length($0) ; if (( l<8 ) || l>63 ) { print $0 ;} }'
Odpowiedzi:
grep
„s-x
przełącznik oznacza całą linię wyniki - to znaczy, że każdy wzór należy dopasować wyznaczają linię od głowy do ogona. robić...... ogólnie odpowiada ...
grep
„s-v
przełącznik neguje wpływ wzorzec jest na linii selekcji. ogólnie robi ...... wybierze tylko linie, które pasują do wzoru, ale przy
-v
negowanym wzorze zostaną wybrane tylko te linie, które nie pasują....a więc...
... dopasowuje wszystkie wiersze, które składają się od głowy do ogona, gdziekolwiek pomiędzy 8 a 63 znaków, a
-v
zanegowany wybór powodujegrep
wydrukowanie wszystkiego innego.źródło