vystup: pouze text odpovidajici regularnimu vyrazu
Michal Hajek
hajek na nspuh.cz
Úterý Červen 11 12:34:36 CEST 2002
Ivo Kocvara wrote:
> Michal Hajek wrote:
>
>>Ivo Kocvara wrote:
>>
>>>Michal Hajek wrote:
>>>
>>>
>>>>Zdar,
>>>>
>>>>kolega se s tim trapi a mne taky nic nenapada... Kterak z textu
>>>>vypsat jen to, co odpovida regularnimu vyrazu ? Zda se mi to
>>>>tak primitivni zadani a prece na to nemuzeme prijit :-( Asi
>>>>nam neco zasadniho uniklo :-)
>>>
>>>
>>>perl -n -e 'print "$1\n" if /(reg.vyraz)/' <soubor.txt
>>>
>>>Jestli vam nevadi perl :-)
>>>
>>
>>Perl mi nevadi, ale tohle vypise jen prvni vyskyt toho vyrazu
>>na radku.. nebo delam neco blbe ?
>>
>> >echo "A1 A2 A3" | perl -n -e 'print "$1\n" if /([A-Z]+[A-Z]*[0-9]+)/'
>>A1
>> >
>
>
> To v zadani nebylo! :-) Ale nevadi, mala uprava a je to:
>
Asi jsem to nerekl vyslovne, ale myslim, ze to ze zadani
vyplyvalo.. to je jedno, diky za pomoc, zkusim, jak to pujde
s temi mailovymi adresami :-)
Jo - pokud bych chtel ten regul. vyraz jako parametr pro perl
(pripadne promennou prostredi), jak na to ? Samozrejme
jsem zkousel
REG=vyraz
ale perl '....($REG)....' ani perl '... $ENV{'REG'}' (to jsem videl
nekde na netu) samozrejme nefunguje :-)
Diky,
Michal
PS: ze bych se na stara kolena naucil Perl ? :-) Zatim jsem vystacil
s ksh, sed, grep, awk :-)
> bash$ echo "A1 A2 A3" | perl -n -e 'while (/([A-Z]+[A-Z]*[0-9]+)/g) {print
> "$1\n"}'
> A1
> A2
> A3
>
--
--------------------------------------------------------------
Michal Hajek mailto:hajek na nspuh.cz
Sprava NIS http://www.nspuh.cz
NsP Uherske Hradiste phone : voice +420 0632 529 204
Purkynova 365 fax +420 0632 551 014
686 68 Uherske Hradiste Czech Republic ICQ UIN: 14290832
--------------------------------------------------------------
Další informace o konferenci Linux