Bash рабочий код для удаления первой или последней строки из файла

Я видел примеры sed, но независимо от того, как я пишу, что он не удалит мою первую строку. На самом деле, я сделал больше тестов, и он тоже не удалит мою первую строку, так что, конечно, я делаю что-то неправильно:

sed '1d' filename

или для последней строки

sed '$d' file name

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

Ответ 1

sed -i '$ d' filename. Флаг -i редактирует файл на месте.

Ответ 2

Вы можете использовать переключатель --in-place (-i):

sed -i '$d' filename

Источник: man sed

Ответ 3

Здесь вы идете! удалить первую строку

sed '1,1d' file1  >> file1.out

удалить последнюю строку/строку

sed '$d' file2  >> file2.out 

Ответ 4

Если ваше sed поддерживает редактирование на месте, оно sed -e '1d' -e '$d' -i filename.

Ответ 5

Потому что никто не дает ей любви:

ed filename <<'END'
1d
$d
w
q
END

Ответ 6

Предоставление этого ответа, так как sed не помечено.

head -`wc -l test2.cc | awk '{print ($1-1)}'` test2.cc

Ответ 7

Попробуйте cat file1 | sed "1,1d; $d" > file2