[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]大文本,批处理如何实现指定列合并。

如:
1.txt
因        yin        英        ying
……


实现:
2.txt
因英        yinying
……



原本是4列,合并后就是2列。
Excel 可以解决,但太慢了,我试着用gawk代码,好像不起作用,不知哪里的问题。
gawk -F '\t' '{print $1$3, $2$4}' 1.txt > 2.txt
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 8# 每天几分


请把你的1.txt传上来,看看分隔符到底是空格还是制表符。
如果需要上传文件,可以用阿里云盘或百度网盘。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 每天几分 于 2023-3-31 22:18 编辑

回复 7# Batcher


    就是制表符啊,复制到论坛就变很多个空格了。可以了,utf8编码的问题。

TOP

回复 3# 每天几分


请把你的1.txt传上来,看看分隔符到底是空格还是制表符。
如果需要上传文件,可以用阿里云盘或百度网盘。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

看你的文本是
  1. 因\s\s\s\s\s\s\s\syin\s\s\s\s\s\s\s\s英\s\s\s\s\s\s\s\sying
复制代码
不是\t,所以要改一改
  1. gawk -F "[ \t]+" "{print $1$3, $2$4}" 1.txt > 2.txt
复制代码
1

评分人数

TOP

  1. @echo off
  2. (for /f "tokens=1-4" %%a in (1.txt) do (
  3. echo %%a%%c        %%b%%d
  4. ))>2.txt
  5. pause
复制代码

批处理也不是很慢,我试了一下,百万行,1分钟
1

评分人数

bat小白,请多指教!谢谢!

TOP

请确保
无bom uft8编码
tab分割每列
斜杠n换行

TOP

回复 2# Batcher

不对,变3列了,
   

要这样才对

TOP

回复 1# 每天几分
  1. gawk -F "\t" "{print $1$3, $2$4}" 1.txt > 2.txt
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表