Board logo

标题: [已结]从文本文件中抽取特征字串 [打印本页]

作者: victor888     时间: 2008-11-12 14:48    标题: [已结]从文本文件中抽取特征字串

高手的代码,炉火纯青!

文本文件,名为:a.txt,其内容如下:
a sig1
b sig3
c sig2
e sig1
f sig3
g sig3
h sig1
i sig2

我现在要得到这样的结果:
sig1: a e h
sig2: c i
sig3: b f g
==
注意:这个文本文件的sig字符并不知道具体是什么,也不知道数量有多少个。但格式肯定是一个字母+一个空格+特征字符。

谢谢!

[ Last edited by victor888 on 2008-11-12 at 19:14 ]
作者: yishanju     时间: 2008-11-12 15:48
应该是需要外部工具了
作者: HAT     时间: 2008-11-12 15:56

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-2 delims= " %%a in (a.txt) do (
  if not defined var_%%b (
    set var_%%b=%%a
  ) else (
    set var_%%b=!var_%%b! %%a
  )
)
for /f "tokens=2-3 delims=_=" %%a in ('set var_') do (
  echo.%%a: %%b
)
pause

作者: judas     时间: 2008-11-12 16:35
楼上 正解
作者: tireless     时间: 2008-11-12 16:58

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2" %%a in (a.txt) do (
  set sig_%%b=!sig_%%b!%%a
)
for /f "delims=_= tokens=2,3" %%a in ('set sig_') do (
  echo %%a: %%b
)
pause
————————————————————————————————————

3 楼的 set var_%%b=%%a 用得真好,我原来写的是 set %%b=!%%b!%%a ,没有加前缀,这样就无法在 set 里面找出来。

[ Last edited by tireless on 2008-11-12 at 17:04 ]
作者: kennybao     时间: 2008-11-12 16:59
路过,学习下