🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux
Article #906809

Re: Podmiana odwrotna zmiennych

#906809
From: heby
Date: Wed, 25 Jan 2023 08:37
29 lines
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-mail
References: <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