🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #51977

Re: podmiana wyrazenia w 1 pliku z 2

#51977
From: Maciej Misiak
Date: Thu, 23 Sep 2010 07:23
38 lines
2399 bytes
> > chcialbym zassac zawartosc z jednego pliku do drugiego czyli mam:
> > 
> > plik-NUMER1 - a w srodku wpisane 192.168.0.10
> > 
> > plik-NUMER2 - a w srodku wpisane:
> > 
> > ip=DANE
> > /sbin/iptables -t nat -I PREROUTING -p tcp -s $ip
> > 
> > efekt koncowy jaki chcialbym uzyskac to plik-NUMER3 o zawartosci:
> > 
> > ip=192.168.0.10
> > /sbin/iptables -t nat -I PREROUTING -p tcp -s $ip
> 
> No cóż, otwieranie pliku, wczytywanie zawartości i zapisywanie w innym pliku to
> w pierwszym lepszym tutorialu mógłbyś doczytać.
> Jak już będziesz miał zawartość pierwszego pliku w jednej zmiennej i zawartość
> drugiego pliku w drugiej zmiennej to w dowolnym tutorialu o regexpach doczytasz
> sobie jak znaleźć ciąg znaków i zamienić na inny. Hint: w regexpie nie będzie
> żadnych specjalnych flag. Prosty prymitywny find i replace.
> 
> Oczywiście można pogolfować...
> perl -pe "s/$ip.*/$ip=$_;''/e;s/DANE/$ip/" plik-NUMER1 plik-NUMER2 > plik-NUMER3

Swoją drogą człowiek się całe życie uczy...
Spodziewałem się, że i takie coś zadziała:

C:\scripts>perl -p0e "s/(.*)ip=DANE/ip=$1/" plik-NUMER1 plik-NUMER2

a tu lipa.
Więc żeby skorzystać z "dodatkowego" feature, że p0 wciąga po jednym pliku do $_:
C:\scripts>perl -p0e "s/DANE/$ip/||s/.*//;$ip=$&" plik-NUMER1 plik-NUMER2

-- 
grizzley

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Technical Details
Message-ID: <7d75.0000058f.4c9b007f@newsgate.onet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl
References: <7d75.00000530.4c99e6b2@newsgate.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl
From: "Maciej Misiak" <grizzleyWYTNIJTO@poczta.onet.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: podmiana wyrazenia w 1 pliku z 2
Date: Thu, 23 Sep 2010 09:23:43 +0200
Organization: Onet.pl
Lines: 38
Sender: news@newsgate.onet.pl
Message-ID: <7d75.0000058f.4c9b007f@newsgate.onet.pl>
References: <7d75.00000530.4c99e6b2@newsgate.onet.pl>
NNTP-Posting-Host: newsgate.onet.pl
Mime-Version: 1.0
X-Trace: newsgate.onet.pl 1285226624 30266 213.180.130.18 (23 Sep 2010 07:23:44 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Thu, 23 Sep 2010 07:23:44 +0000 (UTC)
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 194.197.79.18, 10.174.28.52
X-User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit