Как удалить строки в файле с определенной позиции до конца файла

У меня есть файл со многими строками.

Я хочу удалить из строки 1458 в конец файла. Я думаю, что я могу сделать это с помощью sed , но я не знаю, как это сделать.

3 Solutions collect form web for “Как удалить строки в файле с определенной позиции до конца файла”

 sed '1458,$d' 

Вы можете использовать это с помощью -i для редактирования файла на месте, если это необходимо.

например

 sed -i '1458,$d' filename.txt 

Есть много возможностей сделать это, но если файл очень большой, лучше прекратить обработку любых строк после заданной позиции и просто выйти. Это именно то, что команда q предназначена для sed :

 sed 1458q file 
 $ head -n 1458 myfile > myfile.tmp ; mv myfile.tmp myfile 

Боковое примечание. Насколько я знаю, нет четкого способа сократить файл (в bash / shell и т. Д.) В зависимости от количества строк, что не связано с созданием первого файла (это то, что sed или sed -i (n место).) Это имеет значение, если оставшееся место на диске недостаточно для размещения вновь написанного файла. В этом случае, если вы можете грубо догадаться о размере нового файла, truncate -s {number of bytes} myfile отключит конец файла, не создавая новый.

  • Копировать файл при замене текста в нем
  • Grep текст, соответствующий шаблону
  • Поиск файла для строки, окруженной двумя другими известными строками?
  • Преобразование таблицы csv в HTML
  • распечатать последнее поле из строки + альтернатива для awk
  • Извлечение URL из неформатированного текста
  • Извлечь абзац, разделенный на *** с помощью AWK
  • Может ли grep выводить только указанные группы, которые соответствуют?
  • Текст обтекания и отступов с использованием coreutils
  • добавьте «#» в начале выбранных строк в файле
  • Заменить кратчайшее совпадение строкового рисунка
  • Linux и Unix - лучшая ОС в мире.