Поскольку вам нужно только удалить последнюю строку (и первые пять), вы можете использовать sed
гораздо проще:
sed -e '1,5d; $d' file.csv
Буквально: удалять строки с 1 по 5;удалить последнюю строку.
Если вам нужно удалить более одной строки в конце, это не будет работать;sed
обычно не поддерживает относительные движения, такие как $-4
.В этом случае я бы, вероятно, использовал ed
или ex
:
{ echo '1,5d'; echo '$-4,$d'; echo 'w'; echo 'q'; } | ed file.csv
Удалить строки 1,5;удалить из четырех строк от последней до последней (удалить 5 строк в конце);написать файл;выход (где выход не является обязательным, но запись не).