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

[文本处理] [已解决]批处理如何查找文本是否存在指定字段并用0和1标识有无?

[复制链接]
发表于 2016-1-6 11:14:59 | 显示全部楼层 |阅读模式
http://pan.baidu.com/s/1dDKHGEd  ————Data.txt
http://pan.baidu.com/s/1kTUEO4J   ————index.txt(由于附件超出限制,只能请各位大大们移步百度云下载啦~辛苦思密达)

Data.txt中内容如下(每一个drug后面都是该drug拥有的target_ID内容):
drug_ID    Target_ID
DB00001        BE0000048                                                               
DB00002        BE0000767        BE0000901        BE0002093        BE0002094        BE0002095        BE0002096        BE0002097        BE0001529        BE0000710
DB00003        BE0004796                                                               
DB00004        BE0000658        BE0000651        BE0002102                                               

index.txt中内容如下:
Target_ID         index
BE0000001        1
BE0000002        2
BE0000003        3
BE0000004        4
BE0000005        5
BE0000006        6
...                    ...
BE0008644        4144

希望得到out.txt如下(规则为:将Data.txt中每一个drug的所有target_ID在index.txt中找到对应的index,该index对应于out.txt中的列数,行数为drug_ID,列数则为index位置置1,如没有该target_ID则置0):
drug_ID    BE0000001     BE0000002      BE0000003      BE0000004     BE0000005        BE0000006     .....          BE0008644 (target应共有4144列)
DB00001             0                      0                       0                       0                      0                        0                                      0                                               
DB00002             0                      0                     0                        0                      0                        0                                      0
...
DB...             0                       1                     0                       0                      1                        0                                      1

灰常感谢!!!

评分

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

查看全部评分

 楼主| 发表于 2016-1-6 16:23:26 | 显示全部楼层
@pcl_test~~~~斑竹大大~~救命啊
发表于 2016-1-6 17:42:37 | 显示全部楼层
本帖最后由 pcl_test 于 2016-1-11 01:47 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo;正在处理数据中……
  4. for /f "tokens=1,2" %%a in (index.txt) do set #%%b=%%a&set n=%%b
  5. (for /f "tokens=1*" %%a in (Data.txt) do (
  6.     set /p"=%%a "
  7.     for %%c in (%%b) do set %%c=1
  8.     for /l %%i in (1 1 %n%) do (
  9.         for %%j in (!#%%i!) do (
  10.             if defined %%j (
  11.                 set /p"=1[%%i][%%j] "
  12.                 rem 不显示[序号][Target_ID],上句改为set /p"=1 "
  13.                 set "%%j="
  14.             ) else set /p"=0 "
  15.         )
  16.     )
  17.     echo;
  18. ))<nul>out.txt
  19. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2016-1-6 18:14:06 | 显示全部楼层
回复 3# pcl_test


    大神~~~爱死你啦~~~撒花~~~~
 楼主| 发表于 2016-1-6 18:15:33 | 显示全部楼层
回复 3# pcl_test


    顺便把我新的问题再看一下呗~~~就把两个数据合成一个的那个~~~~~

    感激~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:12 , Processed in 0.020378 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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