[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