🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
4 messages
4 total messages Started by Luk Tue, 26 May 2009 06:15
usuwanie linii
#51413
Author: Luk
Date: Tue, 26 May 2009 06:15
14 lines
1414 bytes
Ciężko ostatnio idzie mi perl więc po raz kolejny zwracam się o pomoc. Mam plik,
w którym każdy wiersz zaczyna się się skrótem i potem dalej tekst. W całym ciągu
tych wierszy są w różnych miejscach dwa wiersze który wyglądają tak:

(liczba - zawsze inna, row(s), wyraz)

"wyraz" jest słowem które pojawia się w tych dwóch wierszach i teraz pytanie,
jak usunąć te dwie linie, żeby reszta wierszy tworzyła ciągłość??

Dzięki za pomoc.
Luk

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: usuwanie linii
#51414
Author: Stachu 'Dozzie' K.
Date: Tue, 26 May 2009 07:20
15 lines
1468 bytes
On 26.05.2009, Luk wrote:
> Ciężko ostatnio idzie mi perl więc po raz kolejny zwracam się o pomoc. Mam plik,
> w którym każdy wiersz zaczyna się się skrótem i potem dalej tekst. W całym ciągu
> tych wierszy są w różnych miejscach dwa wiersze który wyglądają tak:
>
> (liczba - zawsze inna, row(s), wyraz)
>
> "wyraz" jest słowem które pojawia się w tych dwóch wierszach i teraz pytanie,
> jak usunąć te dwie linie, żeby reszta wierszy tworzyła ciągłość??

Przepisać plik. Otwierasz, czytasz po wierszu, sprawdzasz czy wiersz
pasuje, zapisujesz wybrane wiersze do drugiego otwartego pliku.

-- 
Stanislaw Klekot
Re: usuwanie linii
#51415
Author: Paweł Matejski
Date: Tue, 26 May 2009 11:47
16 lines
1550 bytes
Luk wrote:
> Ciężko ostatnio idzie mi perl więc po raz kolejny zwracam się o pomoc. Mam plik,
> w którym każdy wiersz zaczyna się się skrótem i potem dalej tekst. W całym ciągu
> tych wierszy są w różnych miejscach dwa wiersze który wyglądają tak:
> 
> (liczba - zawsze inna, row(s), wyraz)
> 
> "wyraz" jest słowem które pojawia się w tych dwóch wierszach i teraz pytanie,
> jak usunąć te dwie linie, żeby reszta wierszy tworzyła ciągłość??

Dwie linie to usuwam ręcznie. :) Ale jak chcesz z automatu to coś takiego:

perl -i.bak -n -e 'print if (!m/^\(\d+, row\(s\), wyraz/)$/);' nazwa_pliku

-- 
P.M.
Re: usuwanie linii
#51416
Author: Sławomir Szczyrba
Date: Tue, 26 May 2009 16:18
18 lines
1738 bytes
Phoebe Luk napisału :
[...]
> "wyraz" jest słowem które pojawia się w tych dwóch wierszach i teraz pytanie,
> jak usunąć te dwie linie, żeby reszta wierszy tworzyła ciągłość??
>
Zależy kiedy.
Jeśli chcesz te dane obrabiać dalej s perlu, to w pętli wczytującej
dajesz 'next if /podany już gdzie indziej warunek na linię/;'
Jeśli chcesz otrzymać tylko nowy plik bez tych linii, to... grepem :)

> Luk

Sławek
-- 
  ________ Nagle znikąd pojawił się niewidoczny samochód,
_/ __/ __/ uderzył w mój samochód, po czym zniknął. (zgłoszenie PZU)
 \__ \__ \_______________________________________________________________
 /___/___/ Sławomir Szczyrba                          steev/AT/hot\dot\pl
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads