Thread View: pl.comp.os.hp-ux
7 messages
7 total messages
Started by niepytajkto
Fri, 20 Feb 2004 12:55
Problem ze skryptem
Author: niepytajkto
Date: Fri, 20 Feb 2004 12:55
Date: Fri, 20 Feb 2004 12:55
40 lines
1334 bytes
1334 bytes
Witam, mam w pliku tekstowym(plik1.txt) dane ulozone w mniej wiecej taki sposob: 123 43 23 234 234 45 643 345 551 365 94 199 ... a chcialbym miec: 123 43 23 234 234 45 643 345 551 365 94 199 ... napisalem skrypt: #!/bin/sh cat plik1.txt | while read x y z w do printf "%s\t%s\t%s\t%s\n" $x $y $z $w done no i nie dziala... dostaje to samo, co w pliku. Za kazda pomoc bede wdzieczny. Maciek -- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: Problem ze skryptem
Author: Lucyna Witkowska
Date: Fri, 20 Feb 2004 13:42
Date: Fri, 20 Feb 2004 13:42
32 lines
1388 bytes
1388 bytes
niepytajkto@poczta.onet.pl <niepytajkto@poczta.onet.pl> wrote: > a chcialbym miec: > 123 43 23 234 > 234 45 643 345 > 551 365 94 199 > ... > napisalem skrypt: > #!/bin/sh > cat plik1.txt | while read x y z w > do > printf "%s\t%s\t%s\t%s\n" $x $y $z $w > done > no i nie dziala... dostaje to samo, co w pliku. Np. #!/bin/sh while read x read y read z read w read do printf "%s\t%s\t%s\t%s\n" $x $y $z $w done <plik1.txt Pozdrowienia, LW
Re: Problem ze skryptem
Author: Szejku
Date: Fri, 20 Feb 2004 16:40
Date: Fri, 20 Feb 2004 16:40
43 lines
1887 bytes
1887 bytes
> > a chcialbym miec: > > > 123 43 23 234 > > 234 45 643 345 > > 551 365 94 199 > > ... > > napisalem skrypt: > > > > #!/bin/sh > > cat plik1.txt | while read x y z w > > do > > printf "%s\t%s\t%s\t%s\n" $x $y $z $w > > done > > > > no i nie dziala... dostaje to samo, co w pliku. > > Np. > #!/bin/sh > while read x > read y > read z > read w > read > do > printf "%s\t%s\t%s\t%s\n" $x $y $z $w > done <plik1.txt > > Pozdrowienia, > LW Dziekuje, a dlaczego, jezeli w mojej wersji nie dawalem znaku "\n", to wyrzucal wszystko "szeregowo" ? I jeszcze jedno pytanko formalne, jesli mozna - gdybym napisal: while read x y z w < plik1.txt do ... done to tylko zmienna w bylaby wczytywana z plik1.txt, a reszta bylaby wprowadzana z stdin?? Pozdrawiam, Maciek
Re: Problem ze skryptem
Author: Piotr KUCHARSKI
Date: Fri, 20 Feb 2004 16:56
Date: Fri, 20 Feb 2004 16:56
22 lines
1339 bytes
1339 bytes
Szejku <niepytajkto@poczta.onet.pl> wrote:
> a dlaczego, jezeli w mojej wersji nie dawalem znaku "\n", to wyrzucal
> wszystko "szeregowo" ?
man read
DESCRIPTION
The read utility will read a single line from standard
input.
[...]
The line will be split into fields as in the shell; the
first field will be assigned to the first variable var, the
second field to the second variable var, and so forth.
Czego nie rozumiesz w manualu?
p.
--
http://nerdquiz.sgh.waw.pl/ -- polska wersja quizu dla nerdów.
http://freedns.sgh.waw.pl/ -- bezpłatny serwis DNS.
http://42.pl/url/ -- skracacz URL-i.
Re: Problem ze skryptem
Author: Szejku
Date: Fri, 20 Feb 2004 17:32
Date: Fri, 20 Feb 2004 17:32
55 lines
2293 bytes
2293 bytes
Użytkownik "Piotr KUCHARSKI" <chopin@sgh.waw.pl> napisał w wiadomości
news:c15e81$nkp$1@absolut.sgh.waw.pl...
> Szejku <niepytajkto@poczta.onet.pl> wrote:
> > a dlaczego, jezeli w mojej wersji nie dawalem znaku "\n", to wyrzucal
> > wszystko "szeregowo" ?
>
> man read
>
> DESCRIPTION
> The read utility will read a single line from standard
> input.
> [...]
> The line will be split into fields as in the shell; the
> first field will be assigned to the first variable var, the
> second field to the second variable var, and so forth.
>
> Czego nie rozumiesz w manualu?
>
> p.
np. tego, ze gdy zrobilem
cat plik1.txt | while read x y z w
do
printf("%s\t%s\t%s\t%s") $x $y $z $w
done
to dostawalem:
123 43 23 234234 45 643 345 .....
a jak zrobilem:
cat plik1.txt | while read x y z w
do
printf("%s\t%s\t%s\t%s\n") $x $y $z $w
done
to dostalem:
123
43
23
234
234
45
643
345
551
365
94
199
a myslalem, ze dostane:
123 43 23 234
234 45 643 345
551 365 94 199
Nie rozumiem, dlaczego wstawienie "\n" tak drastycznie zmienilo postac
wyjsciowa danych.
Pozdrawiam,
Maciek
Re: Problem ze skryptem
Author: Piotr KUCHARSKI
Date: Fri, 20 Feb 2004 17:48
Date: Fri, 20 Feb 2004 17:48
39 lines
2042 bytes
2042 bytes
Szejku <niepytajkto@poczta.onet.pl> wrote:
>> The read utility will read a single line from standard
>> input.
Na polski: jeden read -- jedna linia z pliku.
>> The line will be split into fields as in the shell; the
>> first field will be assigned to the first variable var, the
>> second field to the second variable var, and so forth.
Na polski: wartości z danej linii będzą przypisywane kolejnym
zmiennym (podanym po read).
> cat plik1.txt | while read x y z w
> do
> printf("%s\t%s\t%s\t%s") $x $y $z $w
> done
> to dostawalem:
> 123 43 23 234234 45 643 345 .....
No to patrz, masz w pliku wejściowym linie:
123
43
czytasz linie po jednej (bo jeden read). W pierwszym obrocie pętli
x=123, y="", z="", w="". I to jest wypisywane. A potem drugi
obrót pętli. tym razem x=43, y, z i w dalej puste. Ale między
jednym a drugim obrotem pętli nie było żadnego '\n'.
> Nie rozumiem, dlaczego wstawienie "\n" tak drastycznie zmienilo postac
> wyjsciowa danych.
Bo nie rozumiesz, co jest w manualu napisane. :-)
p.
--
http://nerdquiz.sgh.waw.pl/ -- polska wersja quizu dla nerdów.
http://freedns.sgh.waw.pl/ -- bezpłatny serwis DNS.
http://42.pl/url/ -- skracacz URL-i.
Re: Problem ze skryptem
Author: Szejku
Date: Fri, 20 Feb 2004 18:10
Date: Fri, 20 Feb 2004 18:10
25 lines
1875 bytes
1875 bytes
> No to patrz, masz w pliku wejściowym linie: > 123 > 43 > czytasz linie po jednej (bo jeden read). W pierwszym obrocie pętli > x=123, y="", z="", w="". I to jest wypisywane. A potem drugi > obrót pętli. tym razem x=43, y, z i w dalej puste. Ale między > jednym a drugim obrotem pętli nie było żadnego '\n'. > > > Nie rozumiem, dlaczego wstawienie "\n" tak drastycznie zmienilo postac > > wyjsciowa danych. > > Bo nie rozumiesz, co jest w manualu napisane. :-) > > p. Fakt, chcialem pojechac troche na skroty, ale sie nie udalo, nie przyjrzalem sie manualowi, a przykladowi z ksiazki "UNIX Administracja Systemu" "... cat file.dat | while read x y z do echo $x $y $z; done a b c d e f ...." strona 715... :-(((( Pozdrawiam, Maciek
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