Portál AbcLinuxu, 22. prosince 2025 09:18
sed '1,10d' /mnt/hda1/uptime.txt > /mnt/hda1/uptime.txtale nový soubor je prázdný. Netušíte jak to udělat aby obsah byl stejný pouze bez oněch deseti řádků?
sed, tak shell, z ktorého ho spúšťaš, vyrobí/oreže súbor, do ktorého robíš presmerovanie.
Buď použiješ iné meno, ktoré potom premenuješ naspäť, alebo budeš vytvárať výsledný súbor v inom adresári, alebo nepoužiješ presmerovanie (ale napr. ed)
sed '1,10d' /mnt/hda1/uptime.txt > /mnt/hda1/uptime1.txt rm /mnt/hda1/uptime.txt mv /mnt/hda1/uptime1.txt /mnt/hda1/uptime.txtale to se mi zda moc amaterske
.
rm netreba.
#!/bin/bash
uptime >> /mnt/hda1/uptime.txt
vystup_wc=`wc -l /mnt/hda1/uptime.txt`
radky=${vystup_wc%% *}
if [ $radky -gt 20 ]
then
echo "$(sed '1,1d' /mnt/hda1/uptime.txt)" > /mnt/hda1/uptime.txt
lftp ftp_server -u login,"heslo" -e "put /mnt/hda1/uptime.txt; exit;"
else
lftpftp_server -u login,"heslo" -e "put /mnt/hda1/uptime.txt; exit;"
fi
exit
#programy potrebne pro spusteni skriptu: uptime, wc, sed, lftp.
#!/bin/bash File=/mnt/hda1/uptime.txt uptime >> $File echo "$(tail -n 20 $File)" > $File lftp ftp_server -u login,"heslo" -e "put $File; exit;"
# uprecords
# Uptime | System Boot up
----------------------------+-------------------------------------------------
1 311 days, 00:52:21 | Linux 2.6.11.9-grsec Sat Aug 13 13:03:11 2005
-> 2 149 days, 01:48:10 | Linux 2.6.11.9-grsec-2 Tue Jun 20 13:55:52 2006
3 0 days, 00:07:59 | Linux 2.6.11.9-grsec Sat Aug 13 12:49:09 2005
----------------------------+-------------------------------------------------
no1 in 161 days, 23:04:12 | at Fri Apr 27 14:48:09 2007
sar.
uprecords nemá (nezná). Alespoň já. Já určitě zkusím doinstalit. Dík za typ.
echo "$(sed '1,10d' /mnt/hda1/uptime.txt)" > /mnt/hda1/uptime.txt
K tomu slouží parametr -i u novějších verzí sedu. Takže je otázka, jak moc má být ten skript přenositelný.
sed -i '1,10d' /mnt/hda1/uptime.txt
echo -e '1,10d\nw\nq\n' | ed /mnt/hda1/uptime.txt
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.