标题: 求一个批处理。把文本a中所每行单词hello后文字全部删除
[打印本页]
作者: 289403
时间: 2010-8-4 20:11
标题: 求一个批处理。把文本a中所每行单词hello后文字全部删除
求一个批处理。把文本a.txt中每行单词hello(单词hello已确定存在)后文字全部删除输出为b.txt
多谢高手了
作者: 523066680
时间: 2010-8-4 21:04
@echo off
setlocal enabledelayedexpansion
type nul>b.txt
for /f "tokens=*" %%a in (a.txt) do (
set line=%%a
for /f "tokens=2 delims=#" %%b in ("!line:hello=#!") do (
echo %%b >>b.txt
)
)
pause
将hello 替换为# 然后以#为分割。 缺点是如果这一行带#就拜拜了
其他特殊字符事故我不管。
[ Last edited by 523066680 on 2010-8-4 at 21:05 ]
作者: 523066680
时间: 2010-8-4 21:10
有#的话可以通过提前对变量中的#临时替换,避免#造成的分割。
没有出现hello的句子会被掠过。
还有个问题是会不会出现两个hello? 那样的话选哪个hello后面的字符
作者: freeants001
时间: 2010-8-4 21:29
纯批
@echo off&setlocal enabledelayedexpansion
(for /f "tokens=*" %%a in (a.txt) do (
set line=%%a
set line=!line:hello=hello%%!
call echo !line!%%
))>b.txt
缺陷,a.txt中不能含有%
SED
sed s/\bhello\b.*/hello/ a.txt > b.txt
作者: 523066680
时间: 2010-8-4 21:48
真有创意