Strona 1 z 1

Bash

: 06 czerwca 2007, 14:46
autor: mkotek
Witam serdecznie

mam pytanko
czy istnieje mozliwosc wyswietlenie konkretnej linijki pliku??

czyli np. w skrypcie podaje jakas wartosc i chce zeby ten skrypt wyświetlil mi ta konkretna linijke czyli np NR 5 z jakiegos pliku

moze jest to jakies banalne pytanie ale dopiero startuje z linuxem :/
z gory dziekuje ze informacje

: 06 czerwca 2007, 14:59
autor: jaSS
Pewnie jest kilkanaście sposobów, mój mało efektywny sposób:

Kod: Zaznacz cały

head -$LINIA $PLIK | tail -1
Czyli np:

Kod: Zaznacz cały

head -5 tekst.txt | tail -1

: 06 czerwca 2007, 15:51
autor: mkotek
to ja juz nic nie rozumiem

na jakiej zasadzie dzialaja te petle
zrobilem cos takiego
for (( i=1; $i <= x; i++ )) ;
do
if [ $i / 5 =0 ] then ...
to dlaczego pierwsza petla wykonuje wszystkie obliczenia
tzn myslalem ze to jest cos podobnego jak w c+++
ze for (( i=1; $i <= x; i++ )) ; czyli od 1 do x sprawdzaj czy
[ $i / 5 =0 ] jezeli tak to wykonaj akcje a jak nie to przejdz dalej
a tu caly czas omija mi ten moment sprawdzenia czy dzielenie calkowite aktualnego i z 5 jest bez reszty wtedy ma wykonac

jakies to dziwne

ok
ale i tak wielkie dzieki za pomoc

: 06 czerwca 2007, 16:07
autor: jang
mkotek
przy jakiej wartości Twoim zdaniem $i podzielone przez 5 będzie niby równe zero ?

: 06 czerwca 2007, 16:27
autor: mkotek
a to nie jest tak ze pierwsza petla for zmienia swoje wartosci od wartosci 1 az do x??

moze zle kojarze ocb ale skoro $i to bedzie aktualna liczba z petli for to np 5/5 nie ma reszty wiec bedzie zero
chyba ze ja sie myle i mowie nie o tej `wersji` dzielenia

: 06 czerwca 2007, 16:34
autor: jang
mkotek
5 podzielone przez 5 równa się 1 a nie zero
Zobacz co tu jest napisane apropo dzielenia : http://debian.linux.pl/viewtopic.php?p=15535#15535

: 06 czerwca 2007, 16:42
autor: mkotek
no to moj blad przepraszam

ale i tak mnie interesuje najbardziej dlaczego mam wrazenie ze 1 petla jakby dzialala oddzielnie
przeciez to jest petla w petli
for <zmienna> ; do
zrób_coś
i_jeszcze_coś
done
a te
zrób_coś
i_jeszcze_coś
to jest druga petla

: 06 czerwca 2007, 17:49
autor: jang
Po pierwsze gdzie Ty widzisz 2 pętle ?
for to jest pętla ale if to już nie jest pętla

Kod: Zaznacz cały

x=10
for (( i=1; $i <= x; i++ )); do  
	if [ $i = 5 ]; then 
		echo "TERAZ Jest 5"; 
	else 
		echo "Jest "$i; 
	fi;
done

: 06 czerwca 2007, 19:08
autor: mkotek
moj blad sorki