[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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 编辑 ]

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

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

TOP

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

TOP

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

TOP

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

TOP

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

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

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

TOP

回复 4楼 的帖子

都有哪些特殊字符呢?
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

回复 8楼 的帖子

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

TOP

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

TOP

回复 10楼 的帖子

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

TOP

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

TOP

回复 12楼 的帖子

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

TOP

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

TOP

回复 14楼 的帖子

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

TOP

返回列表