【发布时间】:2012-03-08 04:27:15
【问题描述】:
我想拆分一个大型文本数据库(约 1000 万行)。我可以使用类似的命令
$ 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 模型中使用它来重新加入最终的简化多边形数据集。
替代且更有用 - 因为这需要进入 arcgis 模型,所以基于 python 的解决方案是最好的。更多细节在https://gis.stackexchange.com/questions/21420/large-point-to-polygon-by-buffer-join-buffer-dissolve-issues#comment29062_21420和Remove specific lines from a large text file in python
根据 icyrock.com 的回答使用基于 CYGWIN 的 Python 解决方案
我们有 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。 最后一行是否需要“do echo”?
这是由python使用
调用的import os
os.system("process_text.bat")
process_text.bat 基本上在哪里
bash process_text.sh
从dos运行时出现以下错误...
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft 公司。保留所有权利。
C:\Users\georgec>bash P:\2012\Job_044_DM_Radio_Propogation\Working\FinalPropogat ion\TRC_Longlands\process_text.sh 'bash' 未被识别为 内部或外部命令,可运行的程序或批处理文件。
当我从 cygwin 运行 bash 命令时,我也得到了
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 扩展名?
【问题讨论】:
-
你能提供一些示例数据吗?