zoukankan      html  css  js  c++  java
  • 使用Shell抓取网页特定数据,并进行文本处理

    【原始需求】

    公司用户手册是SGML的源码,其中文档中存在一些SQL语句,当前想验证这些SQL是否可拷贝执行。

    【对策】

    使用手工拷贝验证,太慢了。

    于是想抓取相关内容,然后直接使用工具进行执行,人为检查执行结果即可。

    经分析,源码部分一般使用<programlisting> </programlisting>和<synopsis></synopsis>标签进行约束,于是shell要抓取的具体内容针对这两个标签来进行。

    记录思路如下:

    1、先处理SQL中的注释(使用--进行注释 类似于C语言的#)

    2、将文本去空格进行序列处理,使用如上标签进行分割,然后取分割后的偶数位置上的值(不解释)

    3、通过第二步可以得到标签中的内容,需要对标签中的特殊字符进行处理

    #!/bin/bash
    
    path='/home/ckdu/sgml_qsruan/sgml'
    for file in `ls /home/qs/sgml/*.sgml`
    do
        cat ${file} |sed 's/&minus;/-/g'|awk -F'--' '{print $1}'> ${file}.tmp
        cat ${file}.tmp  | awk '{printf("%s",$0)}' |awk -F "(<programlisting>)|(</programlisting>)|(<synopsis>)|(</synopsis>)" '{for(i=2;i<NF;i+=2) print $i}'|sed 's/&gt;/>/g'|sed 's/<emphasis>//g'|sed 's/</emphasis>//g'|sed 's/&amp;&amp;/&/g'|sed 's/&lt;/</g'|sed 's/<replaceable>//g'|sed 's/</replaceable>//g' |sed 's/</>//g'|sed 's/<literal>//g' > ${file}.sql
    done

    没有排格式,偷个懒。

  • 相关阅读:
    模糊搜索工具fzf的安装和使用
    ubuntu状态栏位置调整
    毕业相关事项
    vimium拓展程序使用技巧
    python文件生成exe可执行文件
    解决pycharm无法识别PyQt4.QtCore的问题
    pyqt4安装以及pycharm下环境配置
    动态规划——最小编辑代价
    深度学习绘图工具
    Maven Spring JUnit 在Maven Clean Install时报
  • 原文地址:https://www.cnblogs.com/skiz/p/8560184.html
Copyright © 2011-2022 走看看