Board logo

标题: [文本处理] 批处理如何删除文本指定范围内内容? [打印本页]

作者: Rasm    时间: 2012-8-6 14:48     标题: 批处理如何删除文本指定范围内内容?

我的文本里有以下句子

woshinvsheng\admin111\1cf4a1\master
woshinansheng\root\2c5asc\administrator
woaibathome\netuser\password
wwwbathome\wewwe\9c9asd\moter


重点是\1cf4a1\ 这个随机字符,我想把他删掉


但有些内容里并没有这个随机字符,所以代码的意思可以这么写:


如果\*****\之间内容是6位数,就将他删除


期望结果是



woshinvsheng\admin111\master
woshinansheng\root\administrator
woaibathome\netuser\password
wwwbathome\wewwe\moter







文件有300多MB,不知道批处理可否实现
作者: apang    时间: 2012-8-7 08:26

sed:http://www.bathome.net/thread-16975-1-1.html
  1. sed -i "s/\\......\\/\\/g" a.txt
复制代码

作者: yypz123    时间: 2012-8-7 09:52

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=1-4 delims=\" %%i in (c:\1.txt) do (
  4. if not "%%l" == "" (
  5. echo %%i\%%j\%%l>>c:\2.txt
  6. ) else (
  7. echo %%i\%%j\%%k>>c:\2.txt
  8. )
  9. )
  10. pause
复制代码
小弟只会这样写,1.txt是你的那组文本内容,2.txt是处理之后的。小弟不会直接替换,请大神门赐教。
作者: forfiles    时间: 2012-8-7 10:31

回复 3# yypz123


300多M的文件这样处理估计巨慢
作者: Rasm    时间: 2012-8-7 10:39

回复 2# apang


    为什么没有执行呢
作者: forfiles    时间: 2012-8-7 10:40

回复 5# Rasm


    你有sed.exe吗?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2