找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 11601|回复: 5

[文本处理] 【已解决】BAT:如何依据特定空格,按列分割文本

[复制链接]
发表于 2024-11-9 12:16:06 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2024-11-9 19:51 编辑

文本A.txt数值格式如下
A B C        D E        F G H
I        J        K L

问题:如何用gawk 、cut 等第三方工具,依据Tab空格,按列分割A.txt文本?

结果:
1.txt内的数值为文本A.txt的第一列
A B C
I

2.txt内的数值为文本A.txt的第二列
D E
J

3.txt内的数值为文本A.txt的第三列
F G H
K L

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-11-9 17:10:37 | 显示全部楼层
  1. @echo off
  2. cd /d "%~dp0"
  3. for /l %%l in (1,1,10000) do (
  4.         cut -f %%l "a.txt" > "%%l.txt"
  5.         findstr . "%%l.txt" 1>nul || (del "%%l.txt" & goto :next)
  6. )
  7. :next
  8. pause
复制代码

假设不超过10000列

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

发表于 2024-11-9 22:37:07 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-11-9 22:40 编辑

回复 1# 思想之翼
追加一个 gawk 一行流版本...
源文件为 a.txt,结果生成一系列  1.txt, 2.txt, ..., n.txt

  1. gawk -F "\t+" "{for(i=1;i<=NF;++i)print $i>>i".txt"}" a.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

发表于 2024-11-11 09:57:35 | 显示全部楼层
不用第三方应当也可以:
  1. @echo off
  2. for /f "delims=" %%i in (a.txt) do (
  3.     setlocal enabledelayedexpansion
  4.     set str="%%i"
  5.     set str=!str:        ="        "!
  6.     for %%j in (!str!) do (
  7.         set /a n+=1
  8.         echo,%%~j>>!n!.txt
  9.     )
  10.     endlocal
  11. )
  12. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

 楼主| 发表于 2024-11-13 17:31:29 | 显示全部楼层
回复 3# aloha20200628
感谢帮助!代码运行正确。只是有个问题:待分割文本超大(测试文本为10G),会出现错误:gawk:fatal error;internal error
发表于 2024-11-13 19:22:39 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-11-13 19:24 编辑

回复 5# 思想之翼

以下代码存为 test.bat 运行,与源文件 a.txt 同目录
代码调用了 powershell 逐行处理大数据的方法,再试试吧...

  1. <# ::
  2. @echo off & powershell "iex(${%~f0}|out-string)" &pause&exit/b
  3. #>
  4. foreach($l in [io.file]::readlines('a.txt')) {
  5.   $n=1; foreach($v in $l.split("`t")) { $f=''+($n++)+'.txt'; $v|ac $f }
  6. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 16:02 , Processed in 0.021285 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表