
Ich habe versehentlich eine Zeile in /etc/crontab auf vielen Servern verteilt und dabei festgestellt, dass diese Zeile einen Tippfehler enthält und ich sie auf allen Servern ändern muss.
Antwort1
Eine andere Möglichkeit besteht darin, den Tippfehler zu korrigieren, anstatt nur die letzte Zeile zu löschen
sed -i '$ s/typotext/correcttext/ /var/spool/cron/user
Sie sollten die Crontab-Dateien für neuere Cron-Versionen direkt bearbeiten können, da jede Minute nach Änderungen gesucht wird.
Antwort2
Wenn Ihr sed die Bearbeitung direkt unterstützt, dann
sed -i '$d' file
Andernfalls müssen Sie einen zusammengesetzten Befehl verwenden, wie etwa:
cat file | sed '$d' > newfile; mv newfile file
Antwort3
verwendenhead
user@host$ cat <<EOF > test.txt
1
2
3
4
EOF
user@host$ head -n -1 test.txt | sponge test.txt
user@host$ cat test.txt
1
2
3
user@host$
Antwort4
Die Antwort finden Sie in diesem Forumsartikel auf unix.com:
http://www.unix.com/shell-programming-scripting/25027-delete-last-line.html
sed -e '$d' Eingabedatei > Ausgabedatei
oder
head -$(( wc -l file | awk '{print $1}'
- 1)) Datei