Я пытаюсь удалить первые 37 строк из очень и очень большого файла. Я начал попробовать sed и awk, но они, похоже, требуют копирования данных в новый файл. Я ищу метод «удалить строки на месте», который в отличие от sed -i
не делает никаких копий, а просто удаляет строки из существующего файла.Удалите первые N строк файла в командной строке unix
Вот что я сделал ...
awk 'NR > 37' file.xml > 'f2.xml'
sed -i '1,37d' file.xml
Оба они, кажется, чтобы сделать полную копию. Есть ли еще один простой CLI, который может сделать это быстро без полного обхода документа?
Оба варианта 'sed -i' и' gawk v4.1 -i -inplace' в основном создают временный файл за кулисами. IMO 'sed' должен быть быстрее, чем' tail' и 'awk'. –