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

用sed.exe(本坛第三方下载)确实比用纯P轻爽 》先粗洗一遍源文,再掐头去尾...
  1. @echo off
  2. set "p1=^Array.prototype.p = Array.prototype.push;$"
  3. set "p2=^delete(Array.prototype.p);"
  4. sed -n "/%p1%/, /%p2%/p" "源文件" | sed -e "/^$/d" -e "$d" -e "1d"
复制代码

TOP


再给一个尽量简化的纯P版本,与近来数帖 '在界定行之间提取目标数据' 的题型均属同一套路...
  1. @echo off
  2. set "p1=Array.prototype.p = Array.prototype.push;"
  3. set "p2=delete(Array.prototype.p);"
  4. set "got="
  5. for /f "delims=" %%s in (源文件) do (
  6. if /i "%%s"=="%p1%" (set "got=1") else if defined got (
  7. if /i "%%s"=="%p2%" (exit/b) else (echo,%%s)
  8. )
  9. )
复制代码

TOP

回复 14# kidzgy

订正8L的代码如下,用14L提供的新测试文件验证成功。
  1. @echo off
  2. set "p1=Array.prototype.p = Array.prototype.push;"
  3. set "p2=delete(Array.prototype.p);"
  4. sed -n "/%p1%/, /%p2%/p" "test2.html" | sed -e "/^$/d" -e "$d" -e "1d">"test2.html.new"
复制代码
1

评分人数

    • 77七: 感谢分享技术 + 1

TOP

针对LZ提供的测试文件,其实不用下载第三方,直接用下式
     findstr /LB "D.p(" "test2.html">"test2.html.new"
即可一步达成LZ所要结果(即使测试文件是utf-8编码,单行字符量远超8K) ... LZ是要求助有比其更'好'的方法吗? ...至今尚未看到...

TOP

返回列表