[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎么删除指定字符串所在行和指定字符串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 编辑 ]

回复 14楼 的帖子

你准备用哪种语言来写?
Do All in Command Line

TOP

估计得写专门的程序来对付这个了?呵呵

TOP

回复 12楼 的帖子

这个,真没有。
你想想,如果你亲自发明一种脚本,它总要给自己留几个关键字、保留字、特殊字符来实现指定的功能啊。
Do All in Command Line

TOP

这咋办?有没有好点的解决办法可以不用转义的?要是能直接从文件取得字符串内容不用再做修改就好了

TOP

回复 10楼 的帖子

特殊字符需要转义,BAT/VBS/Shell/Perl等大部分脚本都是如此。
Do All in Command Line

TOP

还要对字符串进行改写啊?

TOP

回复 8楼 的帖子

  1. sed -i "/<script src=\"include\/javascript/d" *.html
复制代码
Do All in Command Line

TOP

主要是批量编辑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 编辑 ]

TOP

回复 4楼 的帖子

都有哪些特殊字符呢?
Do All in Command Line

TOP

主要是批量编辑html文件用,所以都是一般HTML中的字符串。

问题1的字符串肯定是单独一行的

问题2的字符串ab如果能支持多行当然是最好的啦。

TOP

字符串A,B能不能给出来,还有,这个两个字符串是不是单独一行?

TOP

先谢过楼上的热心人但是代码好像不行啊,html有特殊字符的!

TOP

答案1:
  1. sed -i "/YourString/d" *.txt
复制代码
Do All in Command Line

TOP

这两个问题估计带有很大的普遍性意义,呵呵

两个重要的文本编辑功能。

TOP

返回列表