Как я могу получить первый столбец 300 ГБ txt файл?

Для FAT16 и разделов FAT32, использовать mlabel от mtools пакет или dosfslabel

Метод 1# использование dosfslabel (Как @Macro предложенный)

Раздел Umount

sudo umount 

Использование Маркировки набора:

sudo dosfslabel  label

Метод 2# использование mtools

Использование пакета установки

sudo apt-get install mtools

размонтируйте внешний диск, Разделы обычно должны быть размонтированы, прежде чем можно будет играть с ними, так размонтируйте раздел устройства, для которого Вы хотите изменить маркировку:

sudo umount 

где имя устройства может быть /dev/sdbx, можно найти в sudo fdisk -l

Проверьте текущую маркировку

sudo mlabel -i  -s ::

Обратите внимание, что мы используем специальное предложение "::" диск, который позволяет нам указывать дескриптор устройства на командной строке; иначе мы должны были бы отредактировать ~/.mtoolsrc для присвоения буквы диска.

Измените маркировку

sudo mlabel -i  ::

Ссылка

3
29.05.2014, 16:46
3 ответа
[1187247]Похоже, ваша [1187631]awk[1187632] реализация имеет ограничение на количество полей. Пример в [1187633]mawk[1187634]:

field.c[1187636]:

rt_overflow[1187638] (определить в [1187639]error.c[1187640]) - функция для генерации сообщения об ошибке во время выполнения:

И в файле [1187641] размера. h[1187642]:

-o vers=3 

По умолчанию [1187643]MAX_FIELD[1187644] равна [1187645]256*128 - 1 = 32767[1187646].

Решить эту проблему можно с помощью [1187647]gawk[1187648].[1187260].

0
27.01.2020, 21:31
[1187995] Вообще говоря, чем более специализированным является инструмент, тем лучше он справляется с очень большими файлами. Вы можете иметь дело с этим файлом, не забывая, что первое поле нужно просто извлечь вручную, вместо того, чтобы использовать встроенную обработку полей. Можно также объединить вызов grep и второй вызов awk в один вызов awk.
  • Однако, конвейер через специализированные утилиты, скорее всего, будет быстрее. Если в качестве разделителя полей всегда используется закладка, можно использовать [1188364]cut[1188365] для изоляции первого поля. Если в качестве разделителя используется пробел, сделайте так, чтобы [1188366]cut -d '' '[1188367].
  • В качестве альтернативы можно использовать sed для первых двух шагов. Будет ли это быстрее, чем [1188368]cut ... | grep ...[1188369], зависит от Ваших данных и от Вашей реализации. В вызове sed замените [1188370]\t[1188371] буквальным символом табуляции, если Ваша реализация не понимает [1188372]\t[1188373]; если Ваша реализация не понимает [1188374]\n[1188375] в замене [1188376]s[1188377], замените ее обратным слэшем-новостью.

    ls -l | head -`ls -l | grep -n 2011-06-24 | cut -d: -f1`
    

    Если в первом поле всегда есть одно единственное вхождение [1188378]/ns/[1188379], вы можете упростить это до следующего, что совпадает с последним вхождением [1188380]/ns[1188381]:

    Обращаясь к последнему шагу, если совпадений много, то команда awk будет использовать много памяти. Если изменение порядка строк в выводе допустимо, можно использовать [1188382]сортировку -u[1188383].

    0
    27.01.2020, 21:31
    [1187175] Звучит так, будто [1187537] awk [1187538] попадает в огромную линию, в результате чего получается 32767 или более полей. Я не могу воспроизвести это с помощью моего [1187539]awk[1187540], хотя:

    Вы могли бы использовать инструмент, который более устойчив к длинным линиям. Вы должны решить, какая максимальная длина для первого поля. Если мы предположим 100, то вы можете попробовать следующее:

    Более того (но это не имеет отношения к вашей проблеме) ваша [1187541]awk | grep | awk[1187542] конструкция не имеет смысла. Это было бы сделано следующим образом:

    отладочное предложение

    Как указал Рамеш: Может быть интересно найти линию, вызывающую проблему. Номер строки задачи должен быть одним из тех, которые следуют за номером, выведенным (или записанным в файл) этой командой:

    Если [1187545]awk[1187546] опустошает свои буферы перед "сбойбой", то это должно быть следующее число (+1).[1187186].

    1
    27.01.2020, 21:31

    Теги

    Похожие вопросы