我最近一直在研究一些简单的 bash 脚本,它解析网页中的特定数据。我已经使用 tr '\r\n' ' ' <file1.txt >file2.txt 来确保,从页面中提取的所有数据都存储在 file1.txt 的一行中。那么我需要匹配这一行中 <th>...</th> 标签之间的所有字符串并删除它们或替换为 ' ' 符号。
所以这里是一些示例代码:

    <td>Abaktal hm</td> </tr> <tr> <th>Package</th> <td>flm 10x400 mg</td> <th>Indesit</th>

我使用过 sed 并尝试过类似的东西
    sed -i 's/\<th\>.*?\<\/th\>/ /g' output.txt

但它没有用。我认为问题出在 ? 符号上。它适用于正则表达式中的 ? 符号,但可能不适用于 bash

最佳答案

虽然我同意 sputnick 和其他人的观点,但对您直接提出的问题的答案是:

sed -ir 's/<th>[^<]+<\/th>//g'

这适用于您的样本数据就好了。

关于regex - 如何使用bash脚本删除一行中两个HTML标签之间的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12962875/

10-12 17:44
查看更多