标题: [文件操作] 批处理如何查找txt文本指定列中是否含相同字符串? [打印本页]
作者: 黎0130 时间: 2015-8-26 13:39 标题: 批处理如何查找txt文本指定列中是否含相同字符串?
本帖最后由 pcl_test 于 2016-7-19 12:17 编辑
查找1.txt是否含有相同字符串
1.txt内容类似于如下格式:
CQABO-SWDL-F-12 150.200.0.12 7 PORTD8801
CQABO-SWDL-F-12 150.200.0.12 6 PORTD8802
CQABO-SWDL-F-12 150.200.0.12 5 PORTD8804
CQABO-SWDL-F-12 150.200.0.12 8 PORTD8805
CQABO-SWDL-F-12 150.200.0.12 13 PORTD8807
如下代码怎么也不行,大家帮忙看是什么问题,谢谢咯- SETLOCAL ENABLEDELAYEDEXPANSION
- set a=0
- for /f "tokens=4 delims= " %%j in (1.txt) do (
- set /a a=!a!+1
- echo !a!
- echo %%j
- pause
- for /f "skip=!a! tokens=4 delims= " %%k in (1.txt) do (
-
- echo %%k
- if %%j==%%k ehco have two %%j
- )
-
- )
- ENDLOCAL
复制代码
作者: pcl_test 时间: 2015-8-26 13:53
本帖最后由 pcl_test 于 2015-8-26 14:37 编辑
第三方- ::先下载http://batch-cn.qiniudn.com/tool/gawk.exe
- @gawk "{a[$4]++}END{for(i in a)if(a[i]>1)print i,a[i]}" "1.txt">"2.txt"
复制代码
bat+js,保存为bat运行- @if(0)==(0) echo off&cscript -nologo -e:jscript "%~0"<"1.txt">"2.txt"&pause & exit/b&@end
- var a = {};
- while(!WScript.StdIn.AtEndOfStream) {
- var m = WScript.StdIn.ReadLine().split(/\s+/);
- a.hasOwnProperty(m[3])?(a[m[3]]++):a[m[3]]=1;
- }
- for (var i in a){if (a[i]>1)WSH.Echo(i+' '+a[i]);}
复制代码
作者: 回家路上 时间: 2015-8-26 15:08
- @echo off
- for /f "tokens=4 delims= " %%j in (1.txt) do (
- set /a #%%j+=1
- )
- for /f "tokens=1,2 delims=#=" %%i in ('set #') do echo;%%i %%j个
- pause
复制代码
作者: 黎0130 时间: 2015-8-26 15:17
回复 3# 回家路上
set /a #%%j+=1 怎么理解这句?谢谢
作者: 回家路上 时间: 2015-8-26 15:21
本帖最后由 回家路上 于 2015-8-26 15:25 编辑
回复 4# 黎0130
set /a 你用了肯定知道。
#%%j就是%%j的值的前面加上#,你肯定还是知道
+=你也知道。
所以你其实不知道的只是————第二个for循环的set # 什么意思?
了解一下set 命令估计一切就了然了
set #————将#开头的变量全都显示出来
哦,你上面没用”+=“。set /a a+=1就相当于set /a a=!a!+1
作者: 尘丶 时间: 2015-8-26 16:19
- @echo off&setlocal enabledelayedexpansion
- del b.txt>nul 2>nul
- del 重复内容.txt>nul 2>nul
- For /f "tokens=*" %%i in (1.txt) do (Findstr /x /c:"%%i" b.txt >nul 2>nul&&(echo %%i>>重复内容.txt)||
- (Echo %%i>>b.txt))
- del b.txt>nul 2>nul
- pause
复制代码
作者: 黎0130 时间: 2015-8-26 19:10
回复 5# 回家路上
我懂你的意思了,谢谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |