Strona 1 z 1

Polecenie echo - bez kasowania pierwszej linii

: 21 maja 2013, 13:28
autor: salo5
Witam.

P
omału uczę się Debiana, jeszcze mało wiem, ale staram się.

Ostatnio poznaję crona, a jak go zrozumiałem, znów muszę się czegoś dowiedzieć. Mianowicie, w tle startuje mi program inadyn, który odświeża domenę dyndns. Program ten tworzy mi log, który np. po tygodniu ma dość wielki rozmiar.

Chciałbym ten log kasować i nawet coś takiego wymyśliłem:

Kod: Zaznacz cały

echo -n > plik
lub

Kod: Zaznacz cały

echo "" > plik
Ale czyści mi on cały plik.

W pierwszej linii pliku inadyn podaję, kiedy wystartował. W związku z tym, chciałbym zostawić tę linię, a wszystkie poniżej pierwszej wykasować.

Jak to zrobić?

Z góry dziękuję za pomoc.

Pozdrawiam!

: 21 maja 2013, 13:34
autor: LordRuthwen
A nie prościej dodać go do logrotate?
ewentualnie zawsze możesz zrobić w ten sposób:

Kod: Zaznacz cały

echo `head -n 1 plik.log` > plik.log

: 21 maja 2013, 13:45
autor: salo5
Nie działa to polecenie...
Wyskakuje mi na w logu:

Kod: Zaznacz cały

head -n 1 plik.log


: 21 maja 2013, 13:51
autor: LordRuthwen
Zwróć uwagę na znaki: `` to nie to samo co ''.

: 21 maja 2013, 14:01
autor: salo5
Wiem, mimo to niestety, ale pokazuje mi teraz:

Kod: Zaznacz cały

head -n 1

: 21 maja 2013, 14:06
autor: LordRuthwen

Kod: Zaznacz cały

cat test.txt
linia 1
linia 2
linia 3
linia 4
root@test:~# echo `head -n 1 test.txt` > test.txt
root@test:~# cat test.txt
linia 1
root@test:~#

: 21 maja 2013, 15:02
autor: ryba84
Ten znak to nie ' tylko `. Tam gdzie tylda na klawiaturze.