Board logo

标题: 求助:数据分割、删除的问题(含特殊符号)! [打印本页]

作者: lsh1611     时间: 2007-11-5 14:42    标题: 求助:数据分割、删除的问题(含特殊符号)!

现有如下数据:

list.txt

017729FDC48E84C6F1F35E6584BBB85D(my_70084) Tent.ecn
04B8D58A63F686C234995B4F39E465C1(9e) TrneGames.eop
0BEA7BD894B170A92B85142E6DC7F929(dodolook4.exe)/stream/data0002/data0003 nare.nmus.aiu
0BEA7BD894B170A92B85142E6DC7F929(dodolook412.exe)/stream/data0002/data0004 n2.Cinmus.aiu
0D091E5DE004F734E95AE154F7F2F438(djatl.dll)/UPack TrneGames.eoc
0E16E6D69595DE409B1A5197149202A9(kvmxfma.dll) TeGames.fhm
0FC934A02DFD35AE51157C1B29225D70(15[1].exe)/PE_Patch/UPack TineGames.dxp
10F30005C92F91AD3225573D0AFA31A8(qiji[1].exe)/PE_Patch/UPack TLineGames.ekb

用空格分为两列,但第一列中,()后面会包含/xxx/xxx/xxx 的无用字符,而且/的数量不固定。

想将/xxxx/xxx/xxx去除,不知for能否搞定(用for取头、尾列,但不知如何写)。也想使用sed,但“/”是sed的专用参数分隔符,还没找到解决方法(bat和sed都是初级),在此求助!
作者: abcd     时间: 2007-11-5 14:59
@echo off
sed "/\// s#/[^/ ]*##g" list.txt
pause
作者: abcd     时间: 2007-11-5 15:15

@echo off
for /f "tokens=1* delims=/" %%i in (list.txt) do (
   if not "%%j"=="" (
      set str=%%j
      call echo %%i %%str:* =%%
   ) else (
      echo %%i
   )
)
pause

作者: lsh1611     时间: 2007-11-5 15:57
多谢abcd了,帮助若干次了!两种代码都可以,但bat的可能有问题,没有全部执行完成,我再找找问题。
作者: abcd     时间: 2007-11-5 16:00
我是用楼主给的那八行字符串测试的

那八行是没问题的,其它的就不知道了