标题: [文本处理] 批处理怎么将两个txt文本一行一行对应替换内容? [打印本页]
作者: wuly520 时间: 2010-5-7 10:12 标题: 批处理怎么将两个txt文本一行一行对应替换内容?
本帖最后由 pcl_test 于 2016-7-14 21:11 编辑
比如:1.txt和2.txt
1.txt的内容
X=123&Y=456&S=34
X=qqq&Y=bbb&S=34
X=aaaa&Y=cccc&S=34
X=bbb&Y=aaa&S=34
2.txt内容
321 123
www rrrr
kkk lll
ooo ggg
现在的问题就是
我想把2.txt 的内容一行对应一行的替换X和Y后面的值
替换之后的样本
X=321&Y=123&S=34
X=www&Y=rrrr&S=34
X=kkk&Y=lll&S=34
X=ooo&Y=ggg&S=34
请问代码应该怎么写.谢谢
[ 本帖最后由 wuly520 于 2010-5-7 10:15 编辑 ]
作者: hanyeguxing 时间: 2010-5-7 11:22
说明:
1,1、2两个文本必须互相对应行
2,1.txt文本必须符合样式:X=字符串&Y=字符串&S=字符串
3,在下面批处理中的"tokens=1,2,3 delims=: ",delims=后依次为英文冒号、制表符和空格- @echo off&setlocal enabledelayedexpansion
- for /F "tokens=1,2,3 delims=: " %%i in ('findstr /n .* 2.txt') do set #%%i=%%j&set @%%i=%%k
- (for /F "tokens=1,3* delims=&:" %%i in ('findstr /n .* 1.txt') do echo.X=!#%%i!^&Y=!@%%i!^&%%k)>结果.txt
复制代码
作者: wuly520 时间: 2010-5-7 11:50
测试结果:
X=321 123&Y=&S=34
X=www rrrr&Y=&S=34
X=kkk lll&Y=&S=43
X=ooo ggg&Y=&S=34
Y的值.跑去Y的前面了........
作者: hanyeguxing 时间: 2010-5-7 12:12
看我在2楼说明里的第三条!
作者: CUer 时间: 2010-5-7 21:31
- gawk -F"[ =&]" "NR==FNR{a[FNR]=$1;b[FNR]=$2}NR>FNR{print $1\"=\"a[FNR]\"\x26\"$3\"=\"b[FNR]\"\x26\"$5\"=\"$6}" 2.txt 1.txt >3.txt
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |