Thread View: pl.comp.os.linux.programowanie
11 messages
11 total messages
Started by Adam Kulagowski
Thu, 30 Sep 1999 06:56
Zamiana pierwszego ciagu napotkanego ciagu
Author: Adam Kulagowski
Date: Thu, 30 Sep 1999 06:56
Date: Thu, 30 Sep 1999 06:56
10 lines
1172 bytes
1172 bytes
Potrzebuje napisac skrypt ktory wymienialby pierwszy napotkany ciag na inny zas pozostale pozostawial nietkniete . Czy ktos moglby mnie nakierowac jak takie cos powinno wygladac ? (wszystko co pisze do tego zadania wychodzi mi jako kobyla ktora na pewno mozna skrocic) Pozdrawiam -- Adam Kulagowski <fidor@friko.internet.pl> I keep my .BAT files in D:\BELFRY
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Robert Luberda
Date: Thu, 30 Sep 1999 08:16
Date: Thu, 30 Sep 1999 08:16
22 lines
1207 bytes
1207 bytes
Adam Kulagowski <fidor@fidor.komorow.pl> wrote:
> Potrzebuje napisac skrypt ktory wymienialby pierwszy napotkany ciag na inny
> zas pozostale pozostawial nietkniete . Czy ktos moglby mnie nakierowac jak
> takie cos powinno wygladac ? (wszystko co pisze do tego zadania wychodzi mi
> jako kobyla ktora na pewno mozna skrocic)
Na przykład tak:
------- cut here -------
#!/bin/sed -f
#
/jakiś_ciąg/ {
s/jakiś_ciąg/inny_ciąg/
q
}
------- cut here -------
Robert
--
Robert Luberda <robert@pingu.ii.uj.edu.pl>
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Adam Kulagowski
Date: Thu, 30 Sep 1999 08:45
Date: Thu, 30 Sep 1999 08:45
24 lines
1603 bytes
1603 bytes
On 30 Sep 1999 08:16:52 GMT, Robert Luberda <robert@pingu.ii.uj.edu.pl> wrote:
>Adam Kulagowski <fidor@fidor.komorow.pl> wrote:
>> Potrzebuje napisac skrypt ktory wymienialby pierwszy napotkany ciag na inny
>> zas pozostale pozostawial nietkniete . Czy ktos moglby mnie nakierowac jak
>> takie cos powinno wygladac ? (wszystko co pisze do tego zadania wychodzi mi
>> jako kobyla ktora na pewno mozna skrocic)
>
>Na przykład tak:
>
>------- cut here -------
>#!/bin/sed -f
>#
>/jakiś_ciąg/ {
> s/jakiś_ciąg/inny_ciąg/
> q
>}
>------- cut here -------
Dzieki zaraz sprobuje .
--
Adam Kulagowski <fidor@friko.internet.pl>
My software never has bugs. It just develops random features.
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Bartosz Jakubski
Date: Thu, 30 Sep 1999 09:15
Date: Thu, 30 Sep 1999 09:15
17 lines
1321 bytes
1321 bytes
Adam Kulagowski napisał(a):
>Potrzebuje napisac skrypt ktory wymienialby pierwszy napotkany ciag na inny
>zas pozostale pozostawial nietkniete . Czy ktos moglby mnie nakierowac jak
>takie cos powinno wygladac ? (wszystko co pisze do tego zadania wychodzi mi
>jako kobyla ktora na pewno mozna skrocic)
Może być perl?
perl -ne 'if(/(pewien_ciąg)/&&!$n){$n=s/$1/zupełnie_inny_ciąg/};print'
Przyjmuje na wejściu, wypluwa na wyjście.
--
-- Bartosz Jakubski Sosnowiec --
-- Free software is a matter of liberty, not price. --
-- http://www.fsf.org/philosophy --
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Robert Luberda
Date: Fri, 01 Oct 1999 08:30
Date: Fri, 01 Oct 1999 08:30
42 lines
1778 bytes
1778 bytes
Adam Kulagowski <fidor@fidor.komorow.pl> wrote:
>>> Potrzebuje napisac skrypt ktory wymienialby pierwszy napotkany ciag na inny
>>> zas pozostale pozostawial nietkniete .
>>
>>Na przykład tak:
>>
>>------- cut here -------
>>#!/bin/sed -f
>>#
>>/jakiś_ciąg/ {
>> s/jakiś_ciąg/inny_ciąg/
>> q
>>}
>>------- cut here -------
> Dzieki zaraz sprobuje .
No i? Zdaje się, że nie działa. W każdym razie na pewno nie tak, jak
chciałeś. Skrypt, który Ci podałem, gdy tylko napotka "jakiś_ciąg", to
zamienia ten "jakiś_ciąg" na "inny_ciąg" i, niestety, się zatrzymuje.
A chyba nie o to Ci chodziło.
Oto poprawna - mam nadzieję :-) - wersja mojego skryptu:
------- cut here -------
#!/bin/sed -f
#
1,/jakiś_ciąg/ {
s/jakiś_ciąg/inny_ciąg/
}
------- cut here -------
Albo w wersji jednolinijkowej:
sed -e '1,/jakiś_ciąg/s/jakiś_ciąg/inny_ciąg/'
Jeszcze raz przepraszam za wprowadzenie w błąd,
pozdrawiam,
Robert
--
Robert Luberda <robert@pingu.ii.uj.edu.pl>
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Sebastian Zagrodzki
Date: Fri, 01 Oct 1999 15:00
Date: Fri, 01 Oct 1999 15:00
22 lines
1539 bytes
1539 bytes
1 Oct 1999 08:30:47 GMT, Robert Luberda napisal(a):
> sed -e '1,/jakiś_ciąg/s/jakiś_ciąg/inny_ciąg/'
a jeśli "jakiś_ciąg" w ogóle nie występuje w pliku? co wtedy?
*-*-*-*--*-*-*-*-*-*-*-*-*-*-*
#!/usr/bin/perl
$flaga="n";
while (<STDIN>)
{
chop $_;
if ( ($flaga eq "n")&&($_ =~ /$ARGV[0]/) )
{
$_=~ s/$ARGV[0]/$ARGV[1]/;
$flaga="y";
}
print "$_\n";
}
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
--
Sebastian Zagrodzki s.zagrodzki@sith.mimuw.edu.pl
UIN 1770835 http://sith.mimuw.edu.pl/~zagrodzki
A co mnie obchodzi co pomysla inni...
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Adam Kulagowski
Date: Fri, 01 Oct 1999 20:32
Date: Fri, 01 Oct 1999 20:32
20 lines
1626 bytes
1626 bytes
On 1 Oct 1999 08:30:47 GMT, Robert Luberda <robert@pingu.ii.uj.edu.pl> wrote: > >No i? Zdaje się, że nie działa. W każdym razie na pewno nie tak, jak >chciałeś. Skrypt, który Ci podałem, gdy tylko napotka "jakiś_ciąg", to >zamienia ten "jakiś_ciąg" na "inny_ciąg" i, niestety, się zatrzymuje. >A chyba nie o to Ci chodziło. >Oto poprawna - mam nadzieję :-) - wersja mojego skryptu: Ha tez to stwierdzilem , ale uznalem ze trzeba czasem pospac :-) > >Jeszcze raz przepraszam za wprowadzenie w błąd, Nie ma sprawy , to bedzie do maskarady poczty :-) Pozdrawiam -- Adam Kulagowski <fidor@friko.internet.pl> If there's one thing I can't stand, it's intolerance.
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Bartosz Jakubski
Date: Sat, 02 Oct 1999 08:51
Date: Sat, 02 Oct 1999 08:51
33 lines
1752 bytes
1752 bytes
Sebastian Zagrodzki napisał(a):
>a jeśli "jakiś_ciąg" w ogóle nie występuje w pliku? co wtedy?
>*-*-*-*--*-*-*-*-*-*-*-*-*-*-*
>#!/usr/bin/perl
>$flaga="n";
>while (<STDIN>)
>{
> chop $_;
> if ( ($flaga eq "n")&&($_ =~ /$ARGV[0]/) )
> {
> $_=~ s/$ARGV[0]/$ARGV[1]/;
> $flaga="y";
> }
> print "$_\n";
>}
>*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
To "chop $_" i 'print "$_\n"' są konieczne. Bo jak nie, to krótsza wersja
mogłaby wyglądać tak:
-----
#!/usr/bin/perl
while(<STDIN>) {
if (/$ARGV[0]/ && !$flaga) {
$flaga = s/$ARGV[0]/$ARGV[1]/;
}
print;
}
-----
--
-- Bartosz Jakubski Sosnowiec --
-- Free software is a matter of liberty, not price. --
-- http://www.fsf.org/philosophy --
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Sebastian Zagrodzki
Date: Sat, 02 Oct 1999 14:31
Date: Sat, 02 Oct 1999 14:31
10 lines
1369 bytes
1369 bytes
2 Oct 1999 08:51:43 GMT, Bartosz Jakubski napisal(a): > To "chop $_" i 'print "$_\n"' są konieczne. Bo jak nie, to krótsza wersja > mogłaby wyglądać tak: nie są, to fakt... oczywiście masz rację... -- Sebastian Zagrodzki s.zagrodzki@sith.mimuw.edu.pl UIN 1770835 http://sith.mimuw.edu.pl/~zagrodzki A co mnie obchodzi co pomysla inni...
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Robert Luberda
Date: Mon, 04 Oct 1999 10:09
Date: Mon, 04 Oct 1999 10:09
13 lines
1230 bytes
1230 bytes
Sebastian Zagrodzki <s.zagrodzki@sith.mimuw.edu.pl> wrote: > 1 Oct 1999 08:30:47 GMT, Robert Luberda napisal(a): >> sed -e '1,/jakiś_ciąg/s/jakiś_ciąg/inny_ciąg/' > a jeśli "jakiś_ciąg" w ogóle nie występuje w pliku? co wtedy? To wtedy go nie zamieni :-) Po prostu wypisze wejście na wyjście. Tak mi się przynajmniej wydaje :) Robert -- Robert Luberda <robert@pingu.ii.uj.edu.pl>
Re: Zamiana pierwszego ciagu napotkanego ciagu
Author: Sebastian Zagrodzki
Date: Mon, 04 Oct 1999 20:14
Date: Mon, 04 Oct 1999 20:14
14 lines
1555 bytes
1555 bytes
4 Oct 1999 10:09:31 GMT, Robert Luberda napisal(a): > >> sed -e '1,/jakiś_ciąg/s/jakiś_ciąg/inny_ciąg/' > > a jeśli "jakiś_ciąg" w ogóle nie występuje w pliku? co wtedy? > To wtedy go nie zamieni :-) > Po prostu wypisze wejście na wyjście. Tak mi się przynajmniej wydaje :) no nie wiem... przynajmniej vim w tym momencie wyrzuca "not found" i nic nie zmienia... no tak, ale sed pracuje linijka po linijce, więc pewnie masz rację. -- Sebastian Zagrodzki s.zagrodzki@sith.mimuw.edu.pl UIN 1770835 http://sith.mimuw.edu.pl/~zagrodzki A co mnie obchodzi co pomysla inni...
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