Board logo

标题: [文本处理] 如何快速的删除指定的多个列 [打印本页]

作者: NETPC99    时间: 2017-4-11 23:21     标题: 如何快速的删除指定的多个列

本帖最后由 pcl_test 于 2017-4-11 23:29 编辑

SCE245,D9137019969,000008017319,00000000000019,C00-138-04+A,夹箍,480270,1
SCFEFEGA,D9137019969,000008017319,00000000000019,GB/T901-M10*120,等长双头螺柱,480270,1
DT085412,D9137019969,000008017319,00000000000019,C00-143-54+B,支架,480270,1
DSEFFES,D9137019969,000008017319,00000000000019,C00-187-02+A,垫块,480250,4


上面的4行文本 每行8列 中间都是用逗号隔开  如何才能删除第二列 第三列 和第四列 还有最后2列
我的数据库有大概几千万条数据 如何才能用最快的速度删除指定的列 求教
作者: taofan712    时间: 2017-4-11 23:39

  1. @echo off
  2. (for /f "tokens=1-8 delims=," %%a in (a.txt) do (
  3.     echo;%%a,%%e,%%f
  4. ))>a_.TXT
复制代码
几千万行,估计不行。
作者: pcl_test    时间: 2017-4-12 00:09

用数据库删要多久??
第三方
http://www.bathome.net/s/tool/index.html?key=gawk
  1. gawk -F"," "{print $1\",\"$5\",\"$6}" "a.txt">"b.txt"&pause
复制代码

作者: codegay    时间: 2017-4-12 00:15

数据里操作不就是一行SQL?
作者: dingcool    时间: 2017-4-12 17:33

其实bat在自动脚本面前 真的弱点太多了
作者: /zhqsystem/zhq    时间: 2017-4-12 19:38

  1. cd /d "%~dp0"
  2. for /f "delims=" %%i in ('dir/a-d/s/b "%~dp0*.txt"')do (
  3. (call:file "%%~fi")>"%%~fi_new%%~xi"
  4. )
  5. pause
  6. goto:eof
  7. :file
  8. for /f "delims=" %%i in ('type "%~f1"')do (
  9. set "_="&&set "#=%%i"&&set "n=0"&&call:data
  10. for /l %%n in (2,1,!o!)do if defined $%%n set "_=!_!!$%%n!"
  11. echo,!_:~0,-1!
  12. set "#=%%i"&&set "m=0"&&call:data_delete
  13. )
  14. goto:eof
  15. :data
  16. if not defined # goto:eof
  17. set/a "n+=1"
  18. for /f "tokens=1,* delims=," %%y in ("!#!")do set "$%n%=%%y,"&&set "#=%%z"
  19. rem:过滤行
  20. set "_=%$1%"
  21. set/a "o=%n%-2"
  22. set "$2=,"
  23. set "$3=,"
  24. set "$4=,"
  25. goto:data
  26. :data_delete
  27. if not defined # goto:eof
  28. set/a "m+=1"
  29. for /f "tokens=1,* delims=," %%y in ("!#!")do set "$%m%="&&set "#=%%z"
  30. goto:data_delete
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2