разбивать большую текстовую (xyz) базу данных на x равных частей

Я хочу разбить большую текстовую базу данных (~ 10 миллионов строк). Я могу использовать команду типа

$ sed -i -e '4 s/(dB)//' -e '4 s/Best\ unit/Best_Unit/' -e '1,3 d' '/cygdrive/c/ Radio Mobile/Output/TRC_TestProcess/trc_longlands.txt' $ split -l 1000000 /cygdrive/P/2012/Job_044_DM_Radio_Propogation/Working/FinalPropogation/TRC_Longlands/trc_longlands.txt 1 

Первая строка – очистить базу данных, а следующая – разбить ее, но тогда выходные файлы не имеют имен полей. Как включить имена полей в каждый набор данных и передать список, в котором есть оригинальный файл, новое имя файла и номера строк (из исходного файла). Это делается для того, чтобы его можно было использовать в модели arcgis для повторного присоединения к окончательным упрощенным наборам наборов полигонов.

ALTERNATIVELYY И БОЛЬШЕ ПОЛЕЗНО – для этого нужно перейти в модель arcgis, лучше всего использовать решение на основе python. Более подробная информация содержится в https://gis.stackexchange.com/questions/21420/large-point-to-polygon-by-buffer-join-buffer-dissolve-issues#comment29062_21420 и удалении определенных строк из большого текстового файла в python

SO GOING CYGWIN на основе Python решения в ответ на icyrock.com

у нас есть process_text.sh

 cd /cygdrive/P/2012/Job_044_DM_Radio_Propogation/Working/FinalPropogation/TRC_Longlands mkdir processing cp trc_longlands.txt processing/trc_longlands.txt cd txt_processing sed -i -e '4 s/(dB)//' -e '4 s/Best\ unit/Best_Unit/' -e '1,3 d' 'trc_longlands.txt' split -l 1000000 trc_longlands.txt trc_longlands_ cat > a h 1 2 3 4 5 6 7 8 9 ^D split -l 3 split -l 3 a 1 mv 1aa 21aa for i in 1*; do head -n1 21aa|cat - $i > 2$i; done for i in 21*; do echo ---- $i; cat $i; done 

как можно «TRC_Longlands» и путь заменить на входное имя файла – в python у нас есть% path% /% name для этого. в последней строке нужно «сделать эхо»?

и это называется python, используя

 import os os.system("process_text.bat") 

где process_text.bat в основном

 bash process_text.sh 

Я получаю следующую ошибку при запуске из dos …

Microsoft Windows [версия 6.1.7601] Copyright (c) 2009 Корпорация Microsoft. Все права защищены.

C: \ Users \ georgec> bash P: \ 2012 \ Job_044_DM_Radio_Propogation \ Working \ FinalPropogat ion \ TRC_Longlands \ process_text.sh 'bash' не распознается как внутренняя или внешняя команда, операционная программа или командный файл.

также когда я запускаю команду bash из cygwin -I get

georgec @ ATGIS25 / cygdrive / P / 2012 / Job_044_DM_Radio_Propogation / Working / FinalPropogation / TRC_Longlands $ bash process_text.sh: Нет такого файла или каталога: / cygdrive / P / 2012 / Job_044_DM_Radio_Propogation / Working / FinalPropogation / TRC_Longlands cp: невозможно создать обычный файл ` processing / trc_longlands.txt \ r ': Нет такого файла или каталога: Нет такого файла или каталога: txt_processing: Нет такого файла или directoryds.txt

но файлы создаются в корневом каталоге. введите описание изображения здесь

почему есть "." после имени каталога? как им можно дать расширение .txt?

One Solution collect form web for “разбивать большую текстовую (xyz) базу данных на x равных частей”

Если вы хотите просто добавить первую строку исходного файла ко всем, кроме первого из разделов, вы можете сделать что-то вроде:

 $ cat > a h 1 2 3 4 5 6 7 ^D $ split -l 3 $ split -l 3 a 1 $ ls 1aa 1ab 1ac a $ mv 1aa 21aa $ for i in 1*; do head -n1 21aa|cat - $i > 2$i; done $ for i in 21*; do echo ---- $i; cat $i; done ---- 21aa h 1 2 ---- 21ab h 3 4 5 ---- 21ac h 6 7 

Очевидно, что первый файл будет иметь одну строку меньше, чем средние части, а последняя часть также может быть короче, но если это не проблема, это должно работать нормально. Конечно, если ваш заголовок имеет больше строк, просто измените head -n1 на head -nX , X будет числом строк заголовка.

Надеюсь это поможет.

  • Рекурсивно перемещать каталог и заменять вызовы функций
  • разбиение файла на более мелкие файлы с использованием количества полей
  • Sed скрипт для редактирования файла csv или Python
  • Правильный способ избежать вызова подпроцесса в python
  • Модификация текстовых файлов через ssh с помощью Python - производительность
  • Несоответствие между регулярными выражениями sed и python
  • Как конкатенировать идентификатор, указанный в двух строках?
  • Удаление текста из текстового файла
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.