Назад | Перейти на главную страницу

Можно ли удалить последнюю строку в файле с помощью команды?

Я случайно распространил строку в / etc / crontab на многих серверах и заметил, что в этой строке есть опечатка, и мне нужно изменить ее на всех серверах.

Другой вариант - исправить опечатку, а не просто удалить последнюю строку

sed -i '$ s/typotext/correcttext/ /var/spool/cron/user

Вы должны иметь возможность редактировать файлы crontab напрямую для новых версий cron, поскольку он очень быстро проверяет наличие изменений.

Если ваш sed поддерживает редактирование на месте, тогда

sed -i '$d' file

если нет, вам нужно будет использовать составную команду, например,

cat file | sed '$d' > newfile; mv newfile file

использовать head

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$

Вы можете использовать Vim в режиме Ex:

ex -sc 'd|x' /etc/crobtab
  1. d удалить строку

  2. x сохранить и выйти

См. Эту статью на форуме unix.com для ответа:

http://www.unix.com/shell-programming-scripting/25027-delete-last-line.html

sed -e '$ d' входной файл> выходной файл

или

голова - $ ((wc -l file | awk '{print $1}' - 1)) файл