标题: [文本处理] 【求助】我想删除文件里面每行中指定字符前面的内容 [打印本页]
作者: no543216789 时间: 2008-9-27 22:35 标题: 【求助】我想删除文件里面每行中指定字符前面的内容
各们大哥大姐帮忙看一下!例如有下面一个这样的脚本,
[1]中国你好!
[2]中国你好!
[3]中国你好!
[4]中国你好!
我想把每行里面“中国”前面的字符全部删掉!就是说在这个文件中,把每一行“中”字前面的内容全部删除,
让文本里面的内容最后变成下面这样
中国你好!
中国你好!
中国你好!
中国你好!
请问一下,可以实现这样可能吗,谢谢!
作者: no543216789 时间: 2008-9-27 22:36
各位帮主,请帮忙看一下,谢谢了
作者: namejm 时间: 2008-9-27 23:03
演示代码如下(没有考虑特殊情况):- @echo off
- cd.>result.txt
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (test.txt) do (
- set "str=%%i"
- set "str=!str:*中=中!"
- echo !str!>>reslut.txt
- )
- start result.txt
复制代码
作者: no543216789 时间: 2008-9-27 23:13
请问一下这位大哥,这句话是什么意思
set "str=!str:*中=中!"
作者: namejm 时间: 2008-9-27 23:14
把第一个中字及其之前的字符串替换为中字。
作者: no543216789 时间: 2008-9-27 23:16
真的可以啊,谢谢这位大哥了,非常感谢
作者: Batcher 时间: 2008-9-27 23:58 标题: 回复 4楼 的帖子
尽快学会自己看帮助
set /?
环境变量替换已如下增强:
%PATH:str1=str2%
会扩展 PATH 环境变量,用 "str2" 代替扩展结果中的每个 "str1"。
要有效地从扩展结果中删除所有的 "str1","str2" 可以是空的。
str1" 可以以星号打头;在这种情况下,"str1" 会从扩展结果的
开始到 str1 剩余部分第一次出现的地方,都一直保持相配。
作者: batman 时间: 2008-9-28 09:29
如果这个字符前有一个固定字符(用a代替),可以不用这么麻烦:- @echo off
- for /f "tokens=1*,delims=a" %%i in (a.txt) do echo %%j
- pause>nul
复制代码
作者: batman 时间: 2008-9-28 09:32
如果楼主的系统中有sed:复制代码
作者: 随风 时间: 2008-10-1 01:33
完善一下8楼的代码,考虑到某行不含“中”字时,不至于丢失行。
- @echo off
- for /f "tokens=1*,delims=中" %%i in (a.txt) do (
- if "%%j"=="" (echo %%i) else echo %%j
- )
- pause>nul
复制代码
batman 开始研究 sed 了。。。? 好事。。
这该死的正则,我一直无法静心研究。。
以后我又多一个人请教问题了,呵呵。。。。好。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |