标题: [文本处理] 批处理怎么替换1文本和2文本的第2列相同的行,替换第一列? [打印本页]
作者: zdqzdqzdq 时间: 2013-11-18 09:42 标题: 批处理怎么替换1文本和2文本的第2列相同的行,替换第一列?
111.txt内容
11.11.11.11 1024 qeq sar 111.111.111.111:36361
24.22.22.22 1024 gd vxzv 111.111.111.111:36363
24.12.12.12 1024 sf xcf 111.111.111.111:36365
24.13.14.15 1024 vc df 111.111.111.111:36367
24.119.15.14 1024 xzg b 111.111.111.111:36369
11月6日
12.17.155.155 1024 cxgv chen 111.111.111.111:36371
12.151.141.131 1023 bcdzx d 111.111.111.111:36373 地方
70.111.222.110 1024 f chen 111.111.111.111:36385
70.232.232.1 1023 bc bc 111.111.111.111:36387
66.111.111.22 1023 gbd 5555 111.111.111.111:36389
68.222.32.32 1023 bc vv 111.111.111.111:36391
1月6日
23.11.25.25 1024 bc bb 111.111.111.111:36393
24.11.25.26 1024 bc cvh 111.111.111.111:36395
67.12.12.13 1024 159 bc 111.111.111.111:36397
24.14.214.214 1024 chen cb 111.111.111.111:36399 同样局
24.78.78.78 1024 chen bc 111.111.111.111:36401
12.12.45.45 1011 cc xf 111.111.111.111:36403
13.13.21.21 1011 bcv xx 111.111.111.111:36405
99.15.15.16 1011 gsd gsd 111.111.111.111:36407
1月2日
25.26.32.21 1023 gbd 5555 111.111.111.111:3232
15.14.122.122 1023 bc vv 111.111.111.111:3211
15.123.159.159 9999 bc bb 111.111.111.111:4445
12.120.130.150 1024 bc cvh 111.111.111.111:3216
17.155.155.155 1024 159 bc 111.111.111.111:7878 个个
1月8日
222.txt内容
45.75.2.21 55555 12 12 12.12.12.12:36361
34.22.22.22 66666 5t 5t 12.12.12.12:36363
50.12.12.12 1024 2324 2324 12.12.12.12:36365
101.132.14.15 1024 qqq qqq 12.12.12.12:36367
112.119.15.14 1038 111 111 12.12.12.12:36369
72.17.155.155 1024 cxgv chen 12.12.12.12:36371
91.151.141.131 1024 qqq qqq 12.12.12.12:36373
如果文本以为:符号 分列 就是说文本格式分为总共2列
查找在111.txt里 222.txt的
:36361
:36363
:36365 内容的行,查找到有此特征的行后把222.txt第一列与111.txt 相对的行第一列 替换
替换后的结果111.txt
替换后111.txt内容
45.75.2.21 55555 12 12 12.12.12.12:36361
34.22.22.22 66666 5t 5t 12.12.12.12:36363
50.12.12.12 1024 2324 2324 12.12.12.12:36365
101.132.14.15 1024 qqq qqq 12.12.12.12:36367
112.119.15.14 1038 111 111 12.12.12.12:36369
11月6日
72.17.155.155 1024 cxgv chen 12.12.12.12:36371
91.151.141.131 1024 qqq qqq 12.12.12.12:36373 地方
70.111.222.110 1024 f chen 111.111.111.111:36385
70.232.232.1 1023 bc bc 111.111.111.111:36387
66.111.111.22 1023 gbd 5555 111.111.111.111:36389
68.222.32.32 1023 bc vv 111.111.111.111:36391
1月6日
23.11.25.25 1024 bc bb 111.111.111.111:36393
24.11.25.26 1024 bc cvh 111.111.111.111:36395
67.12.12.13 1024 159 bc 111.111.111.111:36397
24.14.214.214 1024 chen cb 111.111.111.111:36399 同样局
24.78.78.78 1024 chen bc 111.111.111.111:36401
12.12.45.45 1011 cc xf 111.111.111.111:36403
13.13.21.21 1011 bcv xx 111.111.111.111:36405
99.15.15.16 1011 gsd gsd 111.111.111.111:36407
1月2日
25.26.32.21 1023 gbd 5555 111.111.111.111:3232
15.14.122.122 1023 bc vv 111.111.111.111:3211
15.123.159.159 9999 bc bb 111.111.111.111:4445
12.120.130.150 1024 bc cvh 111.111.111.111:3216
17.155.155.155 1024 159 bc 111.111.111.111:7878 个个
1月8日
这样的批处理因该怎么写,,请教各位大哥,先生指点下,,,,在此谢了,,,,,,
作者: DAIC 时间: 2013-11-18 10:14
- gawk -F: "NR==FNR{a[$2]=$1}NR>FNR{c2=$2; gsub(/ .*/,\"\",c2); for(i in a)if(c2==i){print a[i],$2; next}; print}" 222.txt 111.txt > 333.txt
复制代码
作者: zdqzdqzdq 时间: 2013-11-18 13:39
回复 2# DAIC
替换起 几行 怎么一些替换了 一些替换不了,,,可以解释下 这个第三方命令 详细解释吗 只替换起一部分
作者: zdqzdqzdq 时间: 2013-11-18 13:49
这个替换怎么回出现 每次被替换的都不一样,,,但是总不可以替换完全
作者: xxpinqz 时间: 2013-11-18 15:10
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1-2 delims=:" %%a in (2.txt) do set "#%%~nxb=%%a"
- (for /f "tokens=1* delims=:" %%a in (1.txt) do (
- if not "%%b"=="" (
- for /f "delims= " %%i in ("%%b") do (
- if defined #%%i (echo,!#%%i!:%%b) else echo,%%a:%%b
- )
- ) else echo,%%a
- ))>333.txt
- start 333.txt
复制代码
作者: DAIC 时间: 2013-11-18 15:24
回复 3# zdqzdqzdq
把你的111.txt、222.txt还有处理之后生成的333.txt压缩之后传上来,我试试。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |