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

[文本处理] 【已解决】批处理如何将多个文本的同行数据按同位字符进行组合合并?

本帖最后由 思想之翼 于 2016-1-2 19:44 编辑

D:\数据1\内有文本
001_1  001_2  001_3  001_4
002_1  002_2  002_3  002_4
...
210_1  210_2  210_3  210_4

每个文本记录的数据格式统一 ,例如 :

001_1 数据格式为 001_2 数据格式为 001_3 数据格式为 001_4 数据格式为  
1446             0258             0013             4779              
4085             6055             7829             1195              
8661             6678             1023             9025              
2430             7532             1188             9529              


现在欲将001_1  001_2  001_3  001_4的数据 先进行竖排 再进行横向合并,举例:

将001_1 数据竖排为 将001_2 数据竖排为 将001_3 数据竖排为 将001_4 数据竖排为   
1                  0                  0                  4                    
4                  2                  0                  7                    
4                  5                  1                  7                    
6                  8                  3                  9                    
4                  6                  7                  1                    
0                  0                  8                  1                    
8                  5                  2                  9                    
5                  5                  9                  5                    
8                  6                  1                  9                    
6                  6                  0                  0                    
6                  7                  2                  2                    
1                  8                  3                  5                    
2                  7                  1                  9                    
4                  5                  1                  5                    
3                  3                  8                  2                    
0                  2                  8                  9                    
再横向合并 写入D:\数据2\001.txt
1004
4207
4517
6839
4671
0081
8529
5595
8619
6600
6722
1835
2719
4515
3382
0289

同理
002_1  002_2  002_3  002_4 数据进行竖排 横向合并 写入D:\数据2\002.txt
003_1  003_2  003_3  003_4 数据进行竖排 横向合并 写入D:\数据2\003.txt
...
210_1  210_2  210_3  210_4 数据进行竖排 横向合并 写入D:\数据2\210.txt

自己留存:
  1. sed -i -r "s/[^ ]/ &/g; s/^ +//" a.txt
  2. sed "s/^ *//; s/ \|$/\n/g" a.txt > b.txt
  3. paste -d "" b.txt a.txt>c.txt
复制代码

楼主这些文本是干什么用的

TOP

楼主的逻辑思维总是怎么清晰,但是不知道为啥总是不自己动手写,全是求助。

不管咋滴,顶一个。
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

本帖最后由 WHY 于 2016-1-3 19:13 编辑

sed会直接修改源文件,请注意备份
  1. @echo off & setlocal enabledelayedexpansion
  2. sed -i -r "s/\S/&\n/g; s/^\s+|\s+$//g; /^$/d" *.txt
  3. for %%i in (1 2 3 4) do set "f=!f! _%%i.txt"
  4. for /l %%i in (1001 1 1210) do (
  5.     set "n=%%i"
  6.     for %%j in (!n:~1!) do paste -d "" !f: = %%j!>D:\数据2\%%j.txt
  7. )
  8. pause
复制代码
1

评分人数

TOP

返回列表