[linux] Re: perl (zoek en vervang) script vraag
Hugo van der Kooij
hvdkooij op vanderkooij.org
Wo Jul 11 21:50:30 CEST 2007
On Wed, 11 Jul 2007, Wybo Dekker wrote:
> Hugo van der Kooij wrote:
>> Hoi,
>>
>> Als ik een variabele met een string als:
>> 7D/8D/7D8D01B6BCA36B1634BA0459E71B4F17.198339.win32/data001/01.exe
>>
>> Is de volgende regel dan correct in perl?
>> $samplename =~ s/\.(.*)\/.*/$1/;
>>
>> Om te komen tot het resultaat:
>> 7D/8D/7D8D01B6BCA36B1634BA0459E71B4F17.198339.win32
>>
>> Ik heb het gevoel dat dit net zo goed als resultaat kan geven:
>> 7D/8D/7D8D01B6BCA36B1634BA0459E71B4F17.198339.win32/data001
>
> niet net zo goed: dat doet het gewoon, en dat moet ook. Als je slechts
> tot de eerstvolgende / wilt gaan dan moet je dit doen:
>
> $samplename =~ s/\.(.*?)\/.*/$1/;
>
> (.* pakt zoveel mogelijk, .*? pakt zo weinig mogelijk)
Ahh. Ik zie wel een andere snag. Want ik vergat de . weer terug te zetten.
$samplename =~ s/(\..*?)\/.*/$1/;
Zo zou het zelfs niet meer uit mogen maken van waar het consumeren van de
. begint. Maar als ik de uitleg goed begrepen heb zou $1 daar .win32
moeten terugzetten in de zoek en vervang opdracht en dus alles vanaf de
eerste slash NA de punt(en) moeten verwijderen.
Hugo.
--
hvdkooij op vanderkooij.org http://hugo.vanderkooij.org/
This message is using 100% recycled electrons.
Some men see computers as they are and say "Windows"
I use computers with Linux and say "Why Windows?"
(Thanks JFK, for the insight.)
More information about the Linux
mailing list