标题: [文本处理] 批处理怎样解析文本中指定的字符串并过滤重复行? [打印本页]
作者: qwww1984 时间: 2010-3-22 22:19 标题: 批处理怎样解析文本中指定的字符串并过滤重复行?
(void *)qwww 信息1
F:\svn\1234\aaa.c(1234) 无关信息1
F:\svn\1234\aaa.c(1234) 无关信息2
struct * (int a , int b) 信息2
无关信息若干
F:\svn\1234\bbb.c(1234) 无关信息3
F:\svn\567\abc.c(5678) 无关信息4
F:\svn\1234\5678\vvv.c(1234) 无关信息5
如何提取出F:\svn开头的所有,c文件(需要包括文件的绝对路径),用变量保存并显示
如:F:\svn\1234\aaa.c
F:\svn\1234\bbb.c
……
要求:同样的文件只能echo一次,如:
F:\svn\1234\aaa.c
在文本中出现了两次,那么只能显示一次
作者: sgaizxt001 时间: 2010-3-22 22:23
findstr提取有用信息,然后赋予变量进行对边显示就可以了
作者: qwww1984 时间: 2010-3-22 22:28
没看太明白 我菜鸟一个
怎么才能让他只显示一次呢?
[ 本帖最后由 qwww1984 于 2010-3-22 22:30 编辑 ]
作者: yangfengoo 时间: 2010-3-22 22:48
- @echo off
- for /f "tokens=1* delims=." %%a in ('findstr ".c(" 1.txt') do for %%c in ("%%a.c") do if not defined %%~nc echo.%%~c&set %%~nc=1
- pause
复制代码
作者: bat007 时间: 2010-3-22 23:32
- gawk -F( "/F:\\svn\\/{a[$1]=$1}END{for(i in a)print i}" a.txt
复制代码
作者: x9tiancmd 时间: 2010-3-23 00:58
#4楼
4楼兄台的代码用得好高呀, 然来 for 和findstr, 还可以这么用, 受教了
作者: terse 时间: 2010-3-23 02:51
一个FOR 行不- @echo off
- for /f "delims=(" %%i in (a.txt) do if not defined %%i if "%%~xi" equ ".c" echo %%i&set "%%i=i"
- pause
复制代码
作者: qwww1984 时间: 2010-3-23 20:22
while(1)
{
赞!!!!
}
作者: qwww1984 时间: 2010-3-23 20:33
4楼很强,7楼更猛!!学习了!
作者: yangfengoo 时间: 2010-3-24 00:10
原帖由 terse 于 2010-3-23 02:51 发表
一个FOR 行不@echo off
for /f "delims=(" %%i in (a.txt) do if not defined %%i if "%%~xi" equ ".c" echo %%i&set "%%i=i"
pause
如果一个for
struct * (int a , int b) 信息2
这样的无用信息无法过滤吧,
作者: bat007 时间: 2010-3-24 09:38 标题: 回复 10楼 的帖子
你还是先测试一下再说吧。
在批处理这个圈子里面混,你可以不知道管理员、版主是谁,但是一定要知道terse是谁^_^
作者: caruko 时间: 2010-3-25 18:19
7楼确实很强的代码,....
代码后面有检查后缀是否.c 的
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |