Удаление последней строки файла

Я хочу удалить последнюю строку файла в определенном состоянии. Я использовал sed и сокращал, но они работают только с потоком вывода, но я хочу сделать это в файле. Кто-нибудь может мне помочь? Спасибо заранее.

Ответы

Ответ 1

sed -ie '$d' filename.txt

Опция i сообщает sed редактировать файл на месте.

Ответ 2

Я буду использовать вариант на другом ответе и предлагаю простое использование ed:

ed tmp.tmp << EOC
$
d
w
q
EOC

В противном случае вы можете использовать sed/cut во временном файле и mv, чтобы перезаписать начальный файл.

Ответ 3

Вы всегда можете сделать:

cat * > out

Где вы можете удалить "cat *" с тем, что вы делаете, а выход - результатом этой команды.

Я могу более внимательно рассмотреть, если вы предоставите более подробную информацию о том, что вы пытаетесь сделать.