2

Любые идеи о том, как удалить 16 миллионов строк 24-гигабайтного файла со строки 3 и далее. Традиционные текстовые инструменты командной строки UNIX, перекомпилированные для окон, не будут обрабатывать аспект Unicode файла или размер файла. Может быть, в потоковом режиме> «кошка» терпит неудачу около 4 ГБ.

Я посмотрел на EmEditor. Он имеет возможность перемещаться и отмечать определенные строки, но не имеет команды или макроса для выбора всех строк между двумя закладками. При нажатии клавиши Shift нажатой может потребоваться вечность для выбора миллиона строк.

2 ответа2

1

Как сказал кто-то другой (я пока не могу оставить комментарий), используйте инструмент XML для этой работы. Saxon-HE (http://www.saxonica.com), вероятно, является лучшим выбором - в зависимости от структуры файла XML, вы должны иметь возможность использовать короткое выражение XPath, например:

//*[count(ancestor::*) lt 3]

в командной строке (используя ключ -qs:) для вывода только той части дерева, которая вас интересует.

редактировать: сохраняя в мире XML, вы также будете иметь защитную оболочку, зная, что Unicode обрабатывается правильно, и поэтому вы не рискуете потерять какие-либо данные.

0

Если вы можете узнать количество нужных вам строк в начале и конце файла, вы можете использовать что-то вроде строки (замените 999 на нужное число):

head -n 999 infile.xml > outfile.xml

tail -n 999 infile.xml >> outfile.xml

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .