← Back to team overview

sslug-teknik team mailing list archive

Vedr.: Re: Regular Expressions.. commandline stuff..

 

Hej Joern,

problemet med dit eksempel, er selvfølgelig at jeg her ikke ved hvor mange
mellemrum der er, da jeg ikke ved hvor lang ip-adressen er..
derfor skulle jeg bruge * - som er en del af basic regular expressions..
eller + som er en del af extended regexps.. men som du selv har konstateret
så vil ingen af dem virke i sed.. :-(

Jeg har imidlertidigt fået nedenstående til at virke..

route -n | grep "U " | grep -v lo | cut -c 1-16,33-47 | sed -e 's/[^0-9.]
*[^0-9.]/\//'

dvs.. alt fra første punkt der ikke indeholder 0-9 eller . til sidste sted
dette findes.. giver nok et problem - hvis subnet-masken slutter på andet
end et 3-cifret tal.. - da der så vil være nogle mellem rum der, som min
cut ikke tager med..
hvis nogen har et input der.. så giv endelig jeres besyv med..

/Klavs



On Fri, Mar 23, 2001 at 02:20:32PM +0100, Klavs Klavsen wrote
> Hej allesammen,
>
> Jeg sidder og laver en %post til en rpm-spec fil jeg laver..
>
> jeg har brug for at regne local-nettet ud, da det skal tilføjes til
> /etc/hosts.allow som default..
>
> jeg har følgende kommando indtil videre..
>
>  route -n | grep "U " | grep -v lo | cut -c 1-16,33-47 | sed -e 's/
*/\//'
>
> den skulle gerne matche de par mellemrum der er imellem det første og det
> andet tal man får ud.. fjerner jeg * - matcher den den første.. men med *
> matcher den ingenting..

quick'n'dirty:

... | sed -e 's/  */\//'

(to mellemrum)

I princippet skulle du kunne bruge + operator (1 or more matches), men
jeg kunne umiddelbart ikke få det til at virke.

Jørn

--
Joern Thyssen, Ph.D. student
Dept. of Chemistry, University of Southern Denmark






Follow ups