[linux] bash
jandrejkovic na fvs.upjs.sk
jandrejkovic na fvs.upjs.sk
Středa Listopad 26 20:45:44 CET 2003
Ahoj,
ak som Ta spravne pochopil, tak chces nacitat postupne riadok po riadku v
bashi. Na to Ti pomozu nasledujuce sposoby vypisania N-teho riadku suboru:
head -N < subor | tail -1
sed -n -e 'Np' file
perl -we '$i=N;$i--while($i&&($_=<>));print'
kazdy vyssie uvedeny riadok predstavuje jeden sposob vypisania N-teho
riadku, pricom N je cislo riadku. (urobis cyklus, pricom N bude premenna
cyklu a mas to).
Bash je dobra vec, ale na cykly a zlozitejsie veci by som Ti odporucil
perl, kde programcik na nacitanie suboru moze vyzerat tatko:
#!/usr/bin/perl -w
$file="myfile.txt";
if ($ARGV[0]."" ne "") {$file=$ARGV[0];}
open (IN, $file) or die "Error: cannot open $file";
while ($line=<IN>) {
print ("$line\n");
}
close (IN);
Tento programcik nacita a vypise po riadkoch subor myfile.txt, alebo subor
ktory mu zadas ako parameter.
Ak si chces riadky ulozit do pola, tak do cyklu vloz riadok:
push (@pole, $line);
K jednotlivym nacitanym riadkom potom mozes pristupovat pomocou
$pole[$N], kde N je cislo riadku, alebo pouzi foreach.
Janci alias Tofu.
PS: Ak sa rozhodnes pre perl, nezabudni si nastudovat regularne vyrazy,
oplati sa to...
On Wed, 26 Nov 2003, SaNo wrote:
> zaatial to mam takto. Teda moj problem je ze ako resp. cim mam nacitat
> kazdy riadok do nejakej premennej. Lamem si nad tym hlavu uz dlhsie. V
--
-----------------------------------------------
Visit my WEB page http://go.to/tofu
Další informace o konferenci linux