Rozsah čísel pro grep -E

anton

Rozsah čísel pro grep -E
« kdy: 20. 08. 2018, 14:21:38 »
jak prosim mohu pro grep specifikovat rozsah cisel mezi 40-199 s mezerou na konci?
zkusil jsem toto ale nefunguje mi to spravne :(
Kód: [Vybrat]
grep -E "[40-199]{2,3} "
« Poslední změna: 20. 08. 2018, 14:30:35 od Petr Krčmář »


matus

Re:Rozsah čísel pro grep -E
« Odpověď #1 kdy: 20. 08. 2018, 14:34:43 »
"([4-9][0-9])|(1[0-9]{2}) "

Tohle by melo fungovat spis, potiz s cisly v konkretnim rozsahu u regexu je, ze je musis specifikovat po cislicich.
Jinak na nastudovani regexu doporucuju https://www.codeproject.com/Articles/9099/The-Minute-Regex-Tutorial

anton

Re:Rozsah čísel pro grep -E
« Odpověď #2 kdy: 20. 08. 2018, 14:51:39 »
dekuji cele jsem to pridal jeste do jednech zavorek a uz mi to asi bezi spravne

"(([4-9][0-9])|(1[0-9]{2})) "


kdyby nekdo vedel o zpusobu jak to udelat vic jednoduse tak sem s nim pls

ruby

Re:Rozsah čísel pro grep -E
« Odpověď #3 kdy: 20. 08. 2018, 14:54:35 »
Kód: [Vybrat]
ruby -ne 'print if (40..199) === $_.to_i'

Jirsákův interpreter

Re:Rozsah čísel pro grep -E
« Odpověď #4 kdy: 20. 08. 2018, 15:37:49 »
Kód: [Vybrat]
ruby -ne 'print if (40..199) === $_.to_i'
co dělá tenhle výron?

Není lepší
Kód: [Vybrat]
$ ruby -e 'printf "(%s)",(40..399).map(&:to_s).join("|")'


ruby

Re:Rozsah čísel pro grep -E
« Odpověď #5 kdy: 20. 08. 2018, 15:47:09 »
co dělá tenhle výron?

filtruje vstup

Kód: [Vybrat]
seq 500 | ruby -ne 'print if (40..199) === $_.to_i'

vytiskne čísla mezi 40 a 199

Není lepší
Kód: [Vybrat]
$ ruby -e 'printf "(%s)",(40..399).map(&:to_s).join("|")'

není, neřeší tazatelův problém