标题: [文本处理] 批处理怎么删除指定字符串所在行和指定字符串A,B之间的内容? [打印本页]
作者: cs_t 时间: 2010-3-20 10:23 标题: 批处理怎么删除指定字符串所在行和指定字符串A,B之间的内容?
怎么删除指定字符串行,删除指定字符串A,B之间的行?谢谢
问题1:用纯批处理,或者gawk或者SED怎么删除当前文件夹所有文本文件(*.HTML)含有指定字符串的行?最好是可以把字符串从文本文件取得,这样方便编辑修改。
问题2:上面问题的升级版,所有文本文件(*.HTML)怎么删除指定字符串a-指定字符串b之间的所有内容(多行),a,b字符串能不能支持多行,能就最好了,多行的话用a.txt和b.txt输入
两问题都是直接改原来的文件,不输入到新文件
比如:
<meta name="MSSmartTagsPreventParsing" c />
<meta http-equiv="MSThemeCompatible" c />
<link rel="archives" title="批处理之家" href="http://www.bathome.net/archiver/" />
<link rel="stylesheet" type="text/css" href="forumdata/cache/style_17.css" />
<link rel="stylesheet" type="text/css" href="forumdata/cache/style_17_append.css" />
<script type="text/javascript">var IMGDIR = 'images/default';var attackevasive = '0';var gid = 0;gid = parseInt('1');var fid = parseInt('5');var tid = parseInt('7371');</script>
<script src="include/javascript/common.js" type="text/javascript"></script>
<script src="include/javascript/menu.js" type="text/javascript"></script>
<script src="include/javascript/ajax.js" type="text/javascript"></script>
</head>
问题1:比如删除含有 <script src="include/javascript 字符串的行
问题2:比如删除 a字符串 <link rel="archives" title=" 到B字符串parseInt('7371');</script> 之间所有内容,包含AB字符串,
ab字符串最好是多行的,分别从a.txt和b.txt中取得
[ 本帖最后由 cs_t 于 2010-3-20 19:57 编辑 ]
作者: cs_t 时间: 2010-3-20 10:25
这两个问题估计带有很大的普遍性意义,呵呵
两个重要的文本编辑功能。
作者: BatCoder 时间: 2010-3-20 11:31
答案1:- sed -i "/YourString/d" *.txt
复制代码
作者: cs_t 时间: 2010-3-20 14:03
先谢过楼上的热心人但是代码好像不行啊,html有特殊字符的!
作者: sysplay 时间: 2010-3-20 17:09
字符串A,B能不能给出来,还有,这个两个字符串是不是单独一行?
作者: cs_t 时间: 2010-3-20 17:50
主要是批量编辑html文件用,所以都是一般HTML中的字符串。
问题1的字符串肯定是单独一行的
问题2的字符串ab如果能支持多行当然是最好的啦。
作者: BatCoder 时间: 2010-3-20 18:26 标题: 回复 4楼 的帖子
都有哪些特殊字符呢?
作者: cs_t 时间: 2010-3-20 19:28
主要是批量编辑html文件用,所以都是一般HTML中的字符串
呵呵 也没有很特殊的啦
比如:
<meta name="MSSmartTagsPreventParsing" c />
<meta http-equiv="MSThemeCompatible" c />
<link rel="archives" title="批处理之家" href="http://www.bathome.net/archiver/" />
<link rel="stylesheet" type="text/css" href="forumdata/cache/style_17.css" />
<link rel="stylesheet" type="text/css" href="forumdata/cache/style_17_append.css" />
<script type="text/javascript">var IMGDIR = 'images/default';var attackevasive = '0';var gid = 0;gid = parseInt('1');var fid = parseInt('5');var tid = parseInt('7371');</script>
<script src="include/javascript/common.js" type="text/javascript"></script>
<script src="include/javascript/menu.js" type="text/javascript"></script>
<script src="include/javascript/ajax.js" type="text/javascript"></script>
</head>
问题1:比如删除含有 <script src="include/javascript 字符串的行
问题2:比如删除 a字符串 <link rel="archives" title=" 到B字符串parseInt('7371');</script> 之间所有内容,包含AB字符串,
ab字符串最好是多行的,分别从a.txt和b.txt中取得
[ 本帖最后由 cs_t 于 2010-3-20 19:30 编辑 ]
作者: BatCoder 时间: 2010-3-20 19:43 标题: 回复 8楼 的帖子
- sed -i "/<script src=\"include\/javascript/d" *.html
复制代码
作者: cs_t 时间: 2010-3-20 19:54
还要对字符串进行改写啊?
作者: BatCoder 时间: 2010-3-20 20:04 标题: 回复 10楼 的帖子
特殊字符需要转义,BAT/VBS/Shell/Perl等大部分脚本都是如此。
作者: cs_t 时间: 2010-3-20 20:12
这咋办?有没有好点的解决办法可以不用转义的?要是能直接从文件取得字符串内容不用再做修改就好了
作者: BatCoder 时间: 2010-3-20 21:27 标题: 回复 12楼 的帖子
这个,真没有。
你想想,如果你亲自发明一种脚本,它总要给自己留几个关键字、保留字、特殊字符来实现指定的功能啊。
作者: cs_t 时间: 2010-3-20 22:41
估计得写专门的程序来对付这个了?呵呵
作者: BatCoder 时间: 2010-3-20 22:46 标题: 回复 14楼 的帖子
你准备用哪种语言来写?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |