Article View: pl.comp.os.linux
Article #906809Re: Podmiana odwrotna zmiennych
From: heby
Date: Wed, 25 Jan 2023 08:37
Date: Wed, 25 Jan 2023 08:37
29 lines
2389 bytes
2389 bytes
On 22/01/2023 00:10, marrgol wrote:
> Czy w obecności zmiennej 'AUDIO=pa' na pewno chcemy ze 'spam' uzyskać
> 's$AUDIOm' (albo raczej s${AUDIO}m, żeby to w ogóle miało sens)?
Nie ma. Dlatego na razie nie ograniczam koncepcji narzędzia. Szukam
czegoś, co łyknie 100MB takiego pliku i zrobi to kilkadziesiąt razy
dziennie, na kilkunastu zmiennych do podmiany. sedy się nie nadają z
uwagi na wydajność. A jak coś się znajdzie, to się zobaczy, czy użyteczne.
>> Mogę go napisac, ale to nie jest wbrew pozorom łatwe (tzn aby zrobić
>> to wydajnie, bo grepami można łatwo i powoli.
> Łatwe czy nie, to pojęcie raczej względne… :-) Np. zakładając,
> że sprawdzamy całe środowisko, ale pomijamy definicje funkcji
> i puste zmienne, i podstawiamy nazwę pierwszej napotkanej
> pasującej zmiennej tylko na początku linii z logu, rezultat
> taki jak w powyższym przykładzie można uzyskać takim krótkim
> (czytaj: łatwym i wydajnym ;-)) skryptem w perlu:
>
> while(<>) {
> foreach $K (keys %ENV) {
> unless ($ENV{$K} =~ "{" or $ENV{$K} eq "") {
> s/$ENV{$K}/\${$K}/, last if (/^$ENV{$K}/);
> }
> }
> print;
> }
Tak, mam coś takiego, tylko raczej sed | sed |sed aby wykorzystać
współbieżność.
Technical Details
Message-ID:
<tqqpnh$jcj6$1@dont-email.me>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mailReferences:
<tqdrp3$218q1$1@dont-email.me> <tqhrd3$2pm2c$1@dont-email.me>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.samoylyk.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: heby <heby@poczta.onet.pl> Newsgroups: pl.comp.os.linux Subject: Re: Podmiana odwrotna zmiennych Date: Wed, 25 Jan 2023 09:37:00 +0100 Organization: A noiseless patient Spider Lines: 30 Message-ID: <tqqpnh$jcj6$1@dont-email.me> References: <tqdrp3$218q1$1@dont-email.me> <tqhrd3$2pm2c$1@dont-email.me> MIME-Version: 1.0 Injection-Date: Wed, 25 Jan 2023 08:37:05 -0000 (UTC) Injection-Info: reader01.eternal-september.org; posting-host="d03c54c176667320b9c903911ec16b55"; logging-data="635494"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/8mG/6KY/G5Vj8QDLSrIYF" User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Cancel-Lock: sha1:cSkErGJtPP7B/e/tnbnKOPc/WA4= In-Reply-To: <tqhrd3$2pm2c$1@dont-email.me> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit