标题: [文本处理] 批处理如何删除txt中与文件名相同的内容? [打印本页]
作者: xxm19810711 时间: 2014-12-3 13:20 标题: 批处理如何删除txt中与文件名相同的内容?
如txt文件名为: 济南妇科医院.txt,如何把内容中所有的 济南妇科医院 删除?
作者: xxm19810711 时间: 2014-12-3 13:21
sed 可以吗?
作者: xxm19810711 时间: 2014-12-3 13:30
求大侠告知 不胜感激
作者: amwfjhh 时间: 2014-12-3 13:36
sed肯定可以,待SED熟手来上代码,不过这个问题纯批处理也是可以办到的。- @echo off
- (for /f "tokens=*" %%i in (济南妇科医院.txt) do (
- set strLine=%%i
- setlocal enabledelayedexpansion
- echo !strLine:济南妇科医院=!
- endlocal
- ))>济南妇科医院_new.txt
- start "" 济南妇科医院_new.txt
复制代码
作者: DAIC 时间: 2014-12-3 13:56
- sed -i "s/济南妇科医院//g" 济南妇科医院.txt
复制代码
作者: xxm19810711 时间: 2014-12-3 14:09
回复 5# DAIC
感谢回复,但是我只是举例,其实好多个txt文件,怎么能一次性处理呢?就是怎么引用文件名呢?
作者: xxm19810711 时间: 2014-12-3 14:10
回复 4# amwfjhh
只是拿一个文件举例,实际有很多txt文件
作者: xxm19810711 时间: 2014-12-3 14:25
哪位大侠能给解答一下?急等呀 谢谢了
作者: DAIC 时间: 2014-12-3 15:39
回复 6# xxm19810711 - @echo off
- for /f "delims=" %%i in ('dir /b *.txt') do (
- sed -i "s/%%i//g" "%%i"
- )
复制代码
作者: xxm19810711 时间: 2014-12-3 15:46
回复 9# DAIC
非常感谢回复,但是调用的文件名是 文件名.txt 的,也就是说txt中只有内容里是 文件名.txt才会删除。 如何把没有txt的内容删除呢?谢谢
作者: xxm19810711 时间: 2014-12-3 15:47
回复 9# DAIC
%%i 调用的文件名是包含 扩展名 txt的,如何去掉这个扩展名呢?
作者: DAIC 时间: 2014-12-3 16:14
回复 11# xxm19810711 - @echo off
- for /f "delims=" %%i in ('dir /b *.txt') do (
- sed -i "s/%%~ni//g" "%%i"
- )
复制代码
作者: xxm19810711 时间: 2014-12-3 16:20
回复 12# DAIC
成功了,太感谢了!!!!牛人
作者: CrLf 时间: 2014-12-3 17:14
纯属个人爱好:- gawk "FNR==1{name=FILENAME;gsub(/\.[^\.]+$/,\"\",name)}{gsub(name,\"\")>=0;print >FILENAME \".tmp\"}" *.txt
- del *.txt
- ren *.txt.tmp *.
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |