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

[文本处理] 【已解决】批处理如何提取文件1中数据,按相应格式生成文件2中数据?

如果文件1中数据如下:

0        147        265        649        761        878        894
147        118        384        112        117        16        4
0        1557        1817        2292        2934        2980        3448
1557        260        475        642        46        468        458
0        220        1029        1762        1951        2409        3186
220        809        733        189        458        777        164
0        1320        1968        2650        3051        3138        3288        4399        4404
1320        648        682        401        87        150        1111        5        302
0        147        265        649        761        821        878        894        898
147        118        384        112        60        57        16        4        1033

由此生成文件2内容如下:

=LOOKUP(B2,{0,147,265,649,761,878,894},{"147","118","384","112","117","16","4"})
=LOOKUP(B2,{0,1557,1817,2292,2934,2980,3448},{"1557","260","475","642","46","468","458"})
=LOOKUP(B2,{0,220,1029,1762,1951,2409,3186},{"220","809","733","189","458","777","164"})
=LOOKUP(B2,{0,1320,1968,2650,3051,3138,3288,4399,4404},{"1320","648","682","401","87","150","1111","5","302"})
=LOOKUP(B2,{0,147,265,649,761,821,878,894,898},{"147","118","384","112","60","57","16","4","1033"})

即提取文件1每2行数据,按相应格式生成文件2的一行数据。如何编程实现?

本帖最后由 CrLf 于 2014-7-24 21:01 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "eol=0 delims=" %%a in (文件1.txt) do (
  3.    set /p "str1="
  4.    set /p "str2="
  5.    echo =LOOKUP(B2,{!str1:        =,!},{"!str2:        =","!"}
  6. ))<文件1.txt >文件2.txt
  7. pause
复制代码
1

评分人数

TOP

  1. @sed -rn "N;s/ {1,}/,/g;s/,/\x22,\x22/g9;s/(.*)\n(.*)/=LOOKUP(B2,{\1},{\x22\2\x22})/;p" 文件1.txt>文件2.txt
复制代码
1

评分人数

TOP

返回列表